//可见字符的ASCII码范围是32~126
#include <stdio.h>
#include <string.h>
int main()
{
char str1[512], str2[512];//str1是输入的字符串,str2用于存放不同种类的字符
char ch;//ch是出现次数最多的那个字符
int count = 0, type = 0, max = 0;//count是单个字符出现的次数,type是不同字符的种类数,max是出现次数最多的那个字符的数量
int i, a, n = 0;//其他
printf("请输入英语文本:");
scanf("%[^\n]", &str1);
for (i = 32; i <= 126; i++)//按照ASCII码表逐个判断
{
for (a = 0; a < strlen(str1); a++)
{
if (str1[a] == (char)i)
{
count++;
}
}
if (count != 0)
{
type++;
str2[n] = (char)i;
n++;
if (count >= max)
{
max = count;
ch = (char)i;
}
}
count = 0;
}
str2[strlen(str2)] = '\0';
printf("你总共输入了%u个字符,其中不同的字符个数有%d个\n", strlen(str1), type);
printf("它们是:%s\n", str2);
printf("出现次数最多的字符是'%c',它总共出现了%d次\n", ch, max);
return 0;
}