比较字符数组

Comparing Char arrays

本文关键字:数组 字符 比较      更新时间:2023-10-16

所以在我的TrieNode课上,我有一个char* word[].我有一个方法,其中一个参数是char* missSpelledWord.我正在检查单词是否偏离了一个字母。我有一个 for 循环,然后我有这个 if 语句:

if(missSpelledWord[i] != node->word[i]){
//code
}

我不断收到一条错误消息,说comparison between pointer and integer ('int' and 'char *')char*单词数组在我的TrieNode类中,我只能通过执行node->word[i]来访问它。 如何比较此数据成员并将其与普通char*数组进行比较?

这是我TrieNode

class TrieNode{
public: 
bool isWord;
char word[100][20];
TrieNode* letter[alphabetSize];
};

正如你提到的,你有字符指针数组char* word[],你有字符指针char* missSpelledWord。这意味着您的语句missSpelledWord[i] != node->word[i]意味着"将missSpelledWord中的第i个字符与node->word中的第i个字符数组进行比较"。

事实上,你想要这样的东西:

missSpelledWord[i] != node->word[n][i]
这里的"n">

是第n个单词,"i"是字符位置。

编译器假定数组指针是一个 int,所以它抱怨 char 和 int 之间的比较。 数组只是指针,"i"是应用于此指针的偏移量。word[n]相当于*(word+(sizeof(char)*n))