描述
求出字符串s所含不同字符的总数和每种字符的个数。输入
一个长度不超过100的字符串,字符串中不包含空格,回车,tab等无法打印出来的字符。(字符串长度<100)输出
输出字符串s所含字符的总数和每种字符的个数。(输出的字符顺序按照该字符在字符串中出现的先后顺序显示)输入样例
fg^22 vcfng nhge输出样例
16
f:2
g:3
^:1
2:2
$:2
v:1
c:1
n:2
e:1
#include<iostream>
using namespace std;
typedef struct
{
char tag_name[100];//统计时用于存放字符
int tag_num[100];//统计时用于存放相应字符的数目
}TAG_TABLE;
int main()
{
int i, j, k;
char s[100];
int tag[100];
int len;
cin >> s;
len = strlen(s);
TAG_TABLE T;
T.tag_name[0] = s[0];
T.tag_name[1] = '\0';//这个地方很重要!!!!
T.tag_num[0] = 1;
for (i = 1; i < len; i++)
{
int flag = 0;
for (j = 0; j < strlen(T.tag_name); j++)
{
if (s[i] == T.tag_name[j])//已经统计过的字符
{
T.tag_num[j]=T.tag_num[j]+1;
flag = 1;
break;
}
}
if (flag == 0)//未统计的新字符
{
T.tag_name[j] = s[i];
T.tag_name[j + 1] = '\0';//这个地方很重要!!!!
T.tag_num[j] = 1;
}
}
cout << len << endl;
for (k = 0; k < strlen(T.tag_name); k++)
{
cout << T.tag_name[k] << ":" << T.tag_num[k] << endl;
}
return 0;
}
程序运行结果示意图