我没有用二维数组,你说的是可以用,不是必须用 ^_^
#include <stdio.h>
#include <string.h>
#define CHAR_MAX 126
int main(void)
{
char buf[100];
int char_tab[CHAR_MAX] = {0};
printf("请输入英文文本: ");
fgets(buf, 100, stdin);
buf[strlen(buf) - 1] = '\0'; // 去掉 '\n'
for(int i = 0; buf[i] != '\0'; ++i)
{
++char_tab[buf[i]];
}
int char_count = 0;
for(int i = 0; i < CHAR_MAX; ++i)
{
if(char_tab[i] != 0)
++char_count;
}
printf("你总共输入了%d个字符,其中不同的字符个数有%d个\n", strlen(buf), char_count);
printf("它们是: ");
for(int i = 0; i < CHAR_MAX; ++i)
{
if(char_tab[i] != 0)
fputc(i, stdout);
}
printf("\n");
int max_count = char_tab[0];
char ch = 0;
for(int i = 0; i < CHAR_MAX; ++i)
{
if(max_count < char_tab[i])
{
max_count = char_tab[i];
ch = i;
}
}
printf("出现次数最多的字符是'%c',它总共出现了%d次\n", ch, max_count);
return 0;
}
|