1. 程式人生 > 實用技巧 >字串/字元陣列讀入(char/string)

字串/字元陣列讀入(char/string)

前言

  • 網上有很多相關部落格,或總或全,在做了這道題後,決定總結一下常用字串讀入
  • 只有常用,請不要吹毛求疵

字串string

1.scanf printf:(不含空格)

string a;
a.resize(10); //需要預先分配空間
scanf("%s",&a[0]);
printf("%s\n",a.c_str());
  • 輸入:dddd;輸出:dddd
  • 輸入:ddfded;輸出:ddfded//看上去空間沒開夠沒有問題,但還是不要這樣

推薦用char陣列讀入再賦值給string

2.getline讀入空格

string a; 
getline(cin,a);
cout<<a<<endl;
  • 輸入:d ddd;輸出:d ddd

3.getchar讀入單個字元

  • 我們一般選擇用char讀入再賦值

字元陣列char

1.scanf/printf:(不含空格)

char a[10];
scanf("%s",&a);//&可加可不加
printf("%s",a);
  • 輸入:dfdfdf;輸出:dfdfdf
char b;
scanf("%c",&b);
printf("%c",b);
  • 輸入:d;輸出:d
  • 輸入:dfdfdf;輸出:d

2.getline讀入空格

char a[10];
cin.getline(a,5);//讀入字元長度<1000
cout<<a<<endl;
  • 輸入:d ddd;輸出:d dd
  • 輸入:d fdd;輸出:d fd//超過部分省略

3.getchar讀入單個字元

char a;
a=getchar();
cout<<a<<endl;
  • 輸入:dfd;輸出:d