統計字串中字元的種類和每種字元出現的頻率
//從題目知,要求可以測試多組資料,那麼應採用二維陣列作為資料結構
#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;
}