核心两个点: 获取完整一行输入:scanf("%[^\n]", str);并且这一行数据不一定有字符串结束符; 确保收到有效的字符、数字或空格数据,不然直接使用scanf("%c\n", &ch);可能不是你要的字符。 #include <stdio.h> #include <ctype.h> int main(int argc, char *argv[]) { char ch; int count = 0; int i, len = 0; char str[1001] = {0}; scanf("%[^\n]", ...