写一个字符串,如何计算其符号的个数

如何.写一个函数,传入一个字符串,统计其中字母、数字、分隔符(空格、ta6符、回车) 和其他字符的个数,通过形参传回。主函数要求读入一个文本交件中的所有内容作为字符串,交给上述函数进行统计,并在函数中打印统计结果。输入文件见text.txt

gpt


#include <stdio.h>
#include <ctype.h>

void countCharacters(const char *str, int *letters, int *digits, int *separators, int *others) {
    *letters = 0;
    *digits = 0;
    *separators = 0;
    *others = 0;

    while (*str != '\0') {
        if (isalpha(*str)) {   // 判断是否为字母
            (*letters)++;
        } else if (isdigit(*str)) {    // 判断是否为数字
            (*digits)++;
        } else if (*str == ' ' || *str == '\t' || *str == '\n') {    // 判断是否为空格、制表符或换行符
            (*separators)++;
        } else {
            (*others)++;
        }

        str++;  // 移动到下一个字符
    }
}

int main() {
    FILE *file = fopen("text.txt", "r");
    if (file == NULL) {
        printf("无法打开文件。\n");
        return 1;
    }

    char str[1000];
    fgets(str, sizeof(str), file);  // 从文件中读取内容

    fclose(file);

    int letters, digits, separators, others;
    countCharacters(str, &letters, &digits, &separators, &others);

    printf("字母个数:%d\n", letters);
    printf("数字个数:%d\n", digits);
    printf("分隔符个数:%d\n", separators);
    printf("其他字符个数:%d\n", others);

    return 0;
}