所以即时通讯尝试构建一个coe使用一个字符串来检查anagrams,每次在原始字符串中显示一个字母时会添加一个字符。不能使用strcmp
即时通过比较两个字符串与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++;
}
看看你的代码来填写'firstWord'和'secondWord',我不认为他们正在做你认为他们正在做的事... 它**看起来像我**像'firstWord'将结束与所有不是空格的字符一起使用。而这个'secondWord'具有从空格后面的字符开始的行的内容。 –
你想达到的实际目标是什么......它不是很清楚......但是一个建议的话......尽量避免将数组作为一个角色的索引......你可以借给很大的麻烦,也可以非常意外的结果 –
@ShreyanMehta嗨感谢您的重播。即时通讯尝试计算每个字母出现在给定单词中的次数,以便我可以检查两个单词是否是对方的字母,事情是比较不会因为某种原因而起作用,它会一直持续在if(strcmp(第一个字,第二个字)== 0)由于某种原因 – user7792712