#include<stdio.h>
void f5() {
char str[200];
int num1=0, num2=0, num3=0, num4=0;
printf("Please enter the string: ");
scanf_s("%s", str,200);
for (int i = 0; str[i] != '\0'; i++) {
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'))
num1++; //统计字母
else if (str[i] >= '0' && str[i] <= '9') num2++; //统计数字
else if (str[i] == ' ') num3++; //统计空格
else num4++; //统计其他
}
printf("\n字母数为%d\n数字数为%d\n空格数为%d\n其他字符为%d\n", num1, num2, num3, num4);
}
scanf_s("%s", str,200);
改成scanf_s("%[^\n]",str, 200);
scanf默认接收到空格为止,所以后面的没有接收,你这里需要换成gets
有帮助望采纳!