首页 > 解决方案 > 比较 Char 数组

问题描述

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

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

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

这是我的TrieNode

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

标签: c++

解决方案


正如您所提到的,您有 char 指针数组,char* word[]并且您有 char 指针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))


推荐阅读