分别统计一个字符串中出现小写字母、大写字母、数字和空格的个数。
输入格式:
在一行中输入长度不超过40的字符串。
输出格式:
第一行中输出“小写字母=x“
第二行中输出“大写字母=y“
第三行中输出“数字=z”
第四行中输出“空格=m”
所有结果均原样输出,没有列宽控制。
输入样例:
sd2h b57 sA
输出样例:
小写字母=5
大写字母=1
数字=3
空格=2
#include <stdio.h>
#include <ctype.h>
int main() {
char str[41];
int lowercase = 0, uppercase = 0, digits = 0, spaces = 0;
// 输入字符串
fgets(str, sizeof(str), stdin);
// 统计字符个数
for (int i = 0; str[i] != '\0'; ++i) {
if (islower(str[i])) {
lowercase++;
} else if (isupper(str[i])) {
uppercase++;
} else if (isdigit(str[i])) {
digits++;
} else if (isspace(str[i])) {
spaces++;
}
}
// 输出结果
printf("小写字母=%d\n", lowercase);
printf("大写字母=%d\n", uppercase);
printf("数字=%d\n", digits);
printf("空格=%d\n", spaces);
return 0;
}
这个程序使用 islower
、isupper
、isdigit
和 isspace
函数来检查字符的类型,并根据类型统计各类字符的个数。请注意,输入字符串的长度被限制在40个字符以内,以防止数组溢出。程序会根据输入的字符串输出统计结果。