所以我试图构建一个使用字符串检查字谜的系数,每次字母在原始字符串中显示时都会添加一个字符串。
我这样做是通过比较两个字符串与strcmp,但由于某种原因我总是得到字符串是相等的,即使他们没有,真的很感激一些反馈。
谢谢!
int firstWord[] = { 0 }, secondWord[] = { 0 }, len, i, j, anagrams=0;
char string[1000];
gets_s(string, sizeof(string));
len = strlen(string);
i = 0;
while (i < len) {
if (string[i] == ' ') {
for (j = i + 1; j < len; j++) {
secondWord[string[j]]++;
}
}
if (string[i] != ' ')
firstWord[string[i]]++;
if (strcmp(firstWord, secondWord) == 0) {
anagrams++;
}
i++;
}
答案 0 :(得分:2)
您的阵列firstWord
和secondWord
每个只有一个int
容量。数组不会像代码假定的那样动态调整大小。
int firstWord[] = { 0 }
此代码表示使用值0
创建一个包含一个元素的数组。
以下几行:
firstWord[string[i]]++;
secondWord[string[j]]++;
腐败的随机内存和根本不扩展数组。