題目描述
題目描述
輸入一個英文句子(長度不會超過100),和他的長度,統計每個字母出現的個數。
輸入
第一行包括一個整數,表示句子的長度,長度不會超過100。數字后可能會有多余的無效字符 請gets掉。
第二行包括一個英文句子。
輸出
按順序輸出每個出現的小寫字母的個數。
樣例輸入
25
pascal is so interesting!
樣例輸出
a 2
c 1
e 2
g 1
i 3
l 1
n 2
o 1
p 1
r 1
s 4
t 2
程序
#include <bits/stdc++.h>
using namespace std;
char a[1000];
char tmp[10];
int ans[10000];
int main()
{
int n;
cin >> n;
gets(tmp);//去掉無效的字符
gets(a);
memset(ans,0,sizeof(ans));//把整個ans數組歸零
for (int i = 0;i <= n - 1;i ++)
{
if ((a[i] <= 'z') && (a[i] >= 'a'))
{
ans[a[i] - 'a' + 1] ++;//a[i] - 'a' + 1 是把字母轉換成字母對應的位置
/*ans[a[i] - 'a' + 1] ++;是把ans數組里字母對應的位置加1,進行統計*/
}
}
for (int i = 1;i <= 26;i ++)
{
if (ans[i] != 0)//過濾掉字母個數為零的情況
{
printf("%c %d \n",i + 'a' - 1,ans[i]);//i + 'a' - 1是把字母對應的位置轉換成字母的ascll碼
}
}
return 0;
}