c读取用户在屏幕上输入的一段文字,统计其中每一个汉字的出现次数、每一个英文字母(不区分大小写)的出现次数,并将出现过的汉字和字母以及它们的出现次数输出到屏幕上。
时间: 2023-06-27 17:01:11 浏览: 144
以下是一个简单的C程序,可以实现读取用户在屏幕上输入的一段文字,统计其中每一个汉字的出现次数、每一个英文字母(不区分大小写)的出现次数,并将出现过的汉字和字母以及它们的出现次数输出到屏幕上。
```
#include <stdio.h>
#include <ctype.h>
#define MAX_SIZE 1000
int main()
{
char text[MAX_SIZE];
int chinese_count[256] = {0};
int english_count[26] = {0};
printf("请输入一段文本:\n");
fgets(text, MAX_SIZE, stdin);
for (int i = 0; text[i] != '\0'; i++)
{
if (isalpha(text[i]))
{
english_count[tolower(text[i]) - 'a']++;
}
else if ((text[i] & 0x80) && (text[i + 1] & 0x80))
{
chinese_count[(unsigned char)text[i]]++;
chinese_count[(unsigned char)text[i + 1]]++;
i++;
}
}
printf("汉字\t\t出现次数\n");
for (int i = 0; i < 256; i++)
{
if (chinese_count[i] > 0)
{
printf("%c%c\t\t%d\n", i, i + 1, chinese_count[i] / 2);
}
}
printf("\n字母\t\t出现次数\n");
for (int i = 0; i < 26; i++)
{
if (english_count[i] > 0)
{
printf("%c\t\t%d\n", 'a' + i, english_count[i]);
}
}
return 0;
}
```
这个程序使用了两个数组 `chinese_count` 和 `english_count` 分别记录汉字和英文字母的出现次数。在循环读取用户输入的文本时,使用了 `isalpha` 函数判断当前字符是否是英文字母,如果是,则增加相应字母的计数器;如果不是,则判断当前字符是否是汉字,如果是,则增加相应汉字的计数器。由于汉字占用两个字节,所以在增加汉字计数器时需要同时增加两个字节的计数器。
最后,使用循环遍历两个计数器数组,将出现过的汉字和英文字母及其出现次数输出到屏幕上。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)