この行がどのように機能するのか、この行には疑問がありflag[str[i]-'a']++;
ます。完全なプログラムについては、 http://www.programmingsimplified.com/c/source-code/c-anagram-program をご覧ください。
char str[44];
int flag[26],i=0;
gets(str);
while(str[i]!='\0')
{
flag[str[i]-'a']++; // How this line work
i++;
}
i=0;
while(str[i]!='\0')
{
printf("\n%d, %d ",str[i]-'a');
i++;
}