scanf讀入字串與讀入字元的區別

2021-06-21 07:05:50 字數 383 閱讀 7590

今天下午比賽時候有道題用c++輸入輸出是超時的,所以準備換上c試試,發現幾個小問題:

1、使用scanf("%c", &a)讀取a(a是char型別),如果讀取之前有換行符或者空格,那麼a就會把之前的換行符或者空格讀取到,解決方法就是這之前先getchar()一下。

2、而如果用scanf("%s", str)讀取str(我發現str是char或者char都是可以的),不會讀取前邊的換行符或者空格。

3、其他數值類型別是沒有這樣的問題的。

4、二維char陣列不能用scanf("%s", str[i][j]),可以用scanf("%s", str[i])或者scanf("%c",&str[i][j]),前者速度更快,現在想了想應該是陣列名可以表示陣列首位址的原因。(3/6/2014 補)

字串 字元陣列讀入 char string

1.scanf printf 不含空格 string a a.resize 10 需要預先分配空間 scanf s a 0 printf s n a.c str 推薦用char陣列讀入再賦值給string 2.getline讀入空格string a getline cin,a cout 3.getc...

讀入字串的方法

1.讀入string 需包含標頭檔案 iostream iostream中包含string include 方法 1.讀到空格 tab 回車中任意乙個結束 直接cin。string a cin a 2.讀一行 getline。string a getline cin,a 2.相容 可以讀string...

字串讀入的總結

字串的輸入的主流函式 一 scanf 二 cin 三 gets 四 getline 五 sscanf 一 scanf s str 遇見空格或換行就停止。include int main return 0 輸入 123 456 輸出 123 二 cin str 與scanf 相似遇見空格或換行就停止 ...