统计一行字符中的字母、数字、空格和其他字符数量

题目描述

统计一行字符中的字母、数字、空格和其他字符数量,在处理输入时将回车键单独排除

提示:我们可以使用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()一次性读取一行输入,并使用一个循环对整行进行处理。这种方法可以减少函数调用的开销,并且更高效地处理大量输入。

运行截图

图片[1]-统计一行字符中的字母、数字、空格和其他字符数量-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享