C语言 给定一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

用scanf运行后没反应,用getchar就可以正确运行。应该是我scanf用错了,请问scanf正确用法是什么?

img

img

scanf函数遇到空格就读取结束了。
要读取包含空格的字符或字符串,不能用scanf函数。
也可以用下面的方法:
char buf[20];
gets(buf);//这样一次性读取一行数据,遇到回车符结束

用getchar好用是因为你在while里循环调用它,自然可以一直输入数据
可scanf你只是在while之外调用了一次,循环体里没有再输入新字符了啊