您的位置:首页 > 其它

串的字符统计

2015-12-23 10:18 246 查看
描述

求出字符串s所含不同字符的总数和每种字符的个数。

输入

一个长度不超过100的字符串,字符串中不包含空格,回车,tab等无法打印出来的字符。(字符串长度<100)

输出

输出字符串s所含字符的总数和每种字符的个数。(输出的字符顺序按照该字符在字符串中出现的先后顺序显示)

输入样例

fg^22vcfngnhge

输出样例

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;
}


程序运行结果示意图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  字符串