scanf输入时%s的方式,会忽略缓冲区开头的空白字符。所以有些%c读取会出错的地方用%s不会出错,因为%c会读取那个开头的空白字符。
//举个例子 #include<cstdio> #include<cstring> int main() { char a[100],b[100]; scanf("%s",a); scanf("%s",b); printf("a=%s,str_len=%d\nb=%s,str_len=%d",a,strlen(a),b,strlen(b)); return 0; } //输入,注意中间那么多空格。 aaaaa bbbbb //输出 a=aaaaa,str_len=5 b=bbbbb,str_len=5