//从题目知,要求可以测试多组数据,那么应采用二维数组作为数据结构
#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;
}