字符统计: 在程序运行时输入三行文字,每行最多 40 个字符,可以包含空格,将文字保存在一个二维字符数组中,然后统计文字中大写字母、小写字母、数字、空格、其他字符各有多少个,并输出统计结果。
时间: 2024-12-17 08:52:40 浏览: 5
074_冯春霖_实验11
要实现这个功能,你可以使用一个二维字符数组来存储输入的文字,然后遍历整个数组进行字符分类计数。以下是一个简单的C语言程序来完成这个任务:
```c
#include <stdio.h>
#define MAX_LINES 3
#define MAX_CHARS_PER_LINE 40
int main() {
char words[MAX_LINES][MAX_CHARS_PER_LINE + 1]; // 增加1以容纳换行符
int uppercase = 0, lowercase = 0, digits = 0, spaces = 0, others = 0;
printf("Enter three lines of text (up to 40 characters each):\n");
for (int i = 0; i < MAX_LINES; i++) {
fgets(words[i], sizeof(words[i]), stdin);
words[i][strcspn(words[i], "\n")] = '\0'; // 移除换行符
for (int j = 0; j < strlen(words[i]); j++) {
if (isupper(words[i][j])) { // 判断大写字母
uppercase++;
} else if (islower(words[i][j])) { // 判断小写字母
lowercase++;
} else if (isdigit(words[i][j])) { // 判断数字
digits++;
} else if (words[i][j] == ' ') { // 判断空格
spaces++;
} else { // 其他字符
others++;
}
}
}
printf("\nCharacter counts:\n");
printf("Uppercase letters: %d\n", uppercase);
printf("Lowercase letters: %d\n", lowercase);
printf("Digits: %d\n", digits);
printf("Spaces: %d\n", spaces);
printf("Other characters: %d\n", others);
return 0;
}
```
在这个程序中,我们首先定义了一个二维字符数组`words`和几个用于计数的整型变量。接着,我们读取用户的输入并将其存储到数组中。然后,对于每个字符,我们使用`isupper()`、`islower()`、`isdigit()`等库函数检查其类型,并相应地增加对应的计数。
当程序运行时,提示用户输入文本,结束后会显示字符统计的结果。
阅读全文