入力された文字の出現回数をカウントしようという課題をやっていて、自分は下のようなコードを作ったのですが文字を入力するところまでしか動かず、下の二つの関数が動いてくれません。
daigaku と入力したら
d:1回
a:2回
i:1回
g:1回
k:1回
u:1回
と出力されるようにしたいです。
コードはこんな感じです。
どうか回答よろしくお願いします。
#include<stdio.h>
#define MAX 101
count_ch_in_str();
disp();
char g_ch[MAX], input[MAX];
int g_chcount[MAX];
int main(void) {
printf("スペースなしの文字列>"); scanf("%s",input); count_ch_in_str(); disp(); return 0;
}
count_ch_in_str() {
int counta,countb;
for (int i = 0; i != MAX; g_chcount[i])g_chcount[i] = 0;
for (counta = 0; input[counta] != '\0'; counta++) {
for (countb = 0; g_ch[countb] != '\0'; countb++) {
if (input[counta] == g_ch[countb]) {
g_chcount[counta]++;
}
else {
input[counta]=g_ch[counta] ;
g_chcount[counta]++;
}
}
}
}
disp() {
for (int count = 0; g_ch[count] != '\0'; count++) {
printf("%c: %d回\n", g_ch[count], g_chcount[count]);
}
}
