我正在尝试编写一个字谜程序,所以我找到了以下示例作为开始。但是我不太明白这行代码,first[a[i]-'a']++;
在这里增加这个 char 数组的值有什么意义?
#include <stdio.h>
int check_anagram(char a[], char b[]){
int first[26] = {0}, second[26] = {0}, i = 0;
while (a[i] != '\0'){
first[a[i]-'a']++; // ??????????
i++;
}
i = 0;
while (b[i] != '\0'){
second[b[i]-'a']++;
i++;
}
for (i = 0; i < 26; i++){
if (first[i] != second[i])
return 0;
}
return 1;
}
int main(){
char a[100], b[100];
int flag;
printf("Enter first string\n");
gets(a);
printf("Enter second string\n");
gets(b);
flag = check_anagram(a, b);
if (flag == 1)
printf("\"%s\" and \"%s\" are anagrams.\n", a, b);
else
printf("\"%s\" and \"%s\" are not anagrams.\n", a, b);
return 0;
}
我是一名优秀的程序员,十分优秀!