#include<stdio.h>
int f(char c,const char *p)
{//文字列pを走査しcと同じ要素があれば1、無ければ0
while(*p != '\0')
if(*p++ == c) return 1;
return 0;
}

int main(void)
{
int i,a[256] = {0},n;
char s[256],m[256],*p = m;
printf("Enter:");
gets(s);
for(n = i = 1,m[0] = s[0];s[i] != '\0';i++){
m[i] = '\0';
if(!f(s[i],m)) //登録されてない要素なら登録する
m[n++] = s[i];
}
m[i] = '\0';
n = i = 0;
while(s[n] != '\0'){
if(s[n++] == *p){
a[i]++;//カウント
}else{
p++;
a[++i]++;
}
}
for(i=0,p=m;*p != '\0';p++,i++)
printf("%c:%d kai\n", *p, a[i]);

return 0;
}

できたと思ったがダメだった・・・勉強が足りんね。