题目描述
统计一行字符中的字母、数字、空格和其他字符数量,在处理输入时将回车键单独排除
提示:我们可以使用getchar()
函数逐个读取输入的字符,直到读取到换行符为止。然后,我们通过isalpha()
、isdigit()
和isspace()
函数来判断字符的类型,并对相应的计数器进行增加。
案例代码
#include <stdio.h>
#include <ctype.h>
int main() {
char input[1000];
printf("请输入一行字符:\n");
fgets(input, sizeof(input), stdin);
int letterCount = 0, digitCount = 0, spaceCount = 0, otherCount = 0;
for (int i = 0; input[i] != '\0' && input[i] != '\n'; i++) {
if (input[i] != '\r') { // 排除回车键
if (isalpha(input[i])) {
letterCount++;
} else if (isdigit(input[i])) {
digitCount++;
} else if (isspace(input[i])) {
spaceCount++;
} else {
otherCount++;
}
}
}
printf("字母数量:%d\n", letterCount);
printf("数字数量:%d\n", digitCount);
printf("空格数量:%d\n", spaceCount);
printf("其他字符数量:%d\n", otherCount);
return 0;
}
我们使用fgets()
一次性读取一行输入,并使用一个循环对整行进行处理。这种方法可以减少函数调用的开销,并且更高效地处理大量输入。
运行截图
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END