配列mojiの1つ目の文字が配列strの何番目の英字と一致するか探し、一致すればカウントする。
これを順に’#’の手前まで行い、文字の出現回数を求めるアルゴリズム。
#include <stdio.h>
int main(void)
{
char str[27] =
{'a','b','c','d','e','f','g','h','i','j','k','l','n',
'm','o','p','q','r','s','t','u','v','w','x','y','z'};
int count[27] = {0};
char moji[] = {'g','i','j','i','g','e','n','g','o','#'};
int i;
int j;
for (i = 0; moji[i] != '#'; i++){
for(j = 0; moji[i] != str[j]; j++){
}
count[j]++;
}
for(i = 0; i < 27; i++){
if(count[i] != 0){
printf("文字%c %d個\n", str[i], count[i]);
}
}
getchar();
getchar();
return 0;
}
▼苦戦ポイント▼
8行目 #は’ ’に入れられる文字
12行目 8行目より、for文の条件式に’#’を使用することも可能
21行目 printfと変換指定(%dや%c)、C言語の仕様
printfと変換指定(%c)・・・int型の実引数をunsigned char型に型変換後、文字を出力する。
C言語の仕様・・・int型で期待されているところにchar型を入れると、int型へ型変換される。
◇課題◇
・’ ’と” ”で入れられる文字を把握する
・仕様はしっかり把握していく