#include <stdio.h>#include <ctype.h>int main() { char str[100]; int i, alpha_count = 0, digit_count = 0, space_count = 0, other_count = 0; printf("请输入一个字符串:"); fgets(str, sizeof(str), stdin); for (i = 0; str[i] != '\0'; i++) { if (isalpha(str[i])) { alpha_count++; } else if (isdigit(str[i])) { digit_count++; } else if (isspace(str[i])) { space_count++; } else { other_count++; } } printf("字母个数:%d\n", alpha_count); printf("数字个数:%d\n", digit_count); printf("空格个数:%d\n", space_count); printf("其他字符个数:%d\n", other_count); return 0;}换种方法实现
时间: 2024-03-15 21:44:18 浏览: 26
好的,下面是一个类似的C程序,可以计算输入字符串中字母、数字、空格和其他字符的个数:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int i, alpha_count = 0, digit_count = 0, space_count = 0, other_count = 0;
printf("请输入一个字符串:");
scanf("%[^\n]", str);
for (i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) {
alpha_count++;
} else if (isdigit(str[i])) {
digit_count++;
} else if (isspace(str[i])) {
space_count++;
} else {
other_count++;
}
}
printf("字母个数:%d\n", alpha_count);
printf("数字个数:%d\n", digit_count);
printf("空格个数:%d\n", space_count);
printf("其他字符个数:%d\n", other_count);
return 0;
}
```
这个程序与之前的不同之处在于,它使用了`scanf()`函数来读取输入字符串,而不是使用`fgets()`函数。此外,它还使用了`%[^\n]`格式化字符串来读取包括空格在内的整行输入。