您的位置:首页 > 其它

统计字符串中字符的种类和每种字符出现的频率

2010-11-10 18:05 260 查看
//从题目知,要求可以测试多组数据,那么应采用二维数组作为数据结构

#include<stdio.h>
#include<string.h>

int main()
{
char *a[10], b[10][100]; //*a[10]定义了一个指针数组
int n=0;

puts("sample input/n");
for(int i=0;i<10;i++)
{
scanf("%s",b[i]);
int flag; //作为判断字符串是否合法的标志
for(int j=0;j<strlen(b[i]);j++)
{
flag=0;
if( b[i][j]>=65&&b[i][j]<=90 || b[i][j]>=97&&b[i][j]<=122 )
flag=1;
else
break;
}
if( flag )
a[n++]=b[i]; //如果字符串合乎要求,则移交首地址
else
break; //由于输入非法字符,则跳出while循环

}

puts("/nsample output/n");
for(int i=0;i<n;i++)
{
int count[58]={0}; //计数数组初始化
int num=0; //字符的种类初始化

for(int j=0;j<strlen(a[i]);j++)
++count[a[i][j]-65]; //统计每种字符的个数

for(int k=0;k<58;k++)
if(count[k]) //统计字符的种类
num++;

//开始进行TMD的输出
printf("%d/n",num);
for(int k=0;k<58;k++)
if(count[k])
printf("%c/t%d/n",k+65,count[k]);
printf("/n"); //每组case用一个空行隔开

}

return 0;

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