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