不能使用strcmp

时间:2017-05-22 17:14:14

标签: c

所以我试图构建一个使用字符串检查字谜的系数,每次字母在原始字符串中显示时都会添加一个字符串。

我这样做是通过比较两个字符串与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++;
}

1 个答案:

答案 0 :(得分:2)

您的阵列firstWordsecondWord每个只有一个int容量。数组不会像代码假定的那样动态调整大小。

int firstWord[] = { 0 }

此代码表示使用值0创建一个包含一个元素的数组。

以下几行:

firstWord[string[i]]++;
secondWord[string[j]]++;

腐败的随机内存和根本不扩展数组。