1. 程式人生 > >scanf讀入字串與讀入字元的區別

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

今天下午比賽時候有道題用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 補)