如何.写一个函数,传入一个字符串,统计其中字母、数字、分隔符(空格、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;
}