出したい結果は
a: 2
b: 3
c: 5
・
・
・
z: 4
といったような感じです。
#include<stdio.h>
int count(char s[], char ch){// 文字列に含まれる文字chの数を返す
int i;
int a = 0;
for(i = 0; s[i]!= '\0'; i++){
if(s[i] == ch){
a = a + 1;
}
else{ a = a;}
}
return a;
}
void to_lower_string(char s[]){// 文字列に含まれる大文字をすべて小文字にする
int i;
for(i = 0; s[i]!= '\0'; i++){
if('A' <= s[i] && s[i] <= 'Z'){
s[i] = s[i] + 32;
}
else{ s[i] = s[i];}
}
}
char ith_char(int i){ // 0番目をaとし、アルファベット順でi番目の小文字のアルファベットを返す
char a;
a = 'a';
char r;
if(i == 0){
r = a;
}
else{
r = a + i;
}
return r;
}
main(){
int cnt[26];
int a;
int i = 0;
for(a = 0; a <= 25 ; a++){
cnt[a] = 0;
}
char str[256+1];
while (scanf("%256s", str) == 1) { /* 読み込めるあいだ繰り返す */
int j ;
char m;
for(j = 0; j <=25; j++){
m = ith_char(j);
to_lower_string(str);
cnt[j] =cnt[j] + count(str,m);
}
}
for(i = 0; i <= 25; i++){// 出てきた回数が0のアルファベットは表示しない
if(cnt[i] == 0){
}
else{
printf("%c: %d\n",ith_char(i),cnt[i]);
}
}
}