比较字符数组
Comparing Char arrays
所以在我的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))
。
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 按字符值访问int数组
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- C++ 带结构的数组字符
- 数组字符包含量超出预期
- 读取文件并添加到数组字符
- 如何在Qt中更改或替换数组字符
- 为什么编译器不在参数中传递数组字符 *arr[] 的大小?
- 井字棋数组字符错误
- 分割数组字符