アルゴリズム【文字のカウント】

配列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型へ型変換される。

 

◇課題◇
・’ ’と” ”で入れられる文字を把握する
・仕様はしっかり把握していく

コメントを残す

あなたのメールアドレスは公開されません。必須項目には印がついています *