gpt4 book ai didi

在不使用 strcmp 的情况下比较 C 中两个二维数组的元素

转载 作者:行者123 更新时间:2023-11-30 21:05:46 24 4
gpt4 key购买 nike

我正在用 C 创建一个拼写检查器。我有一个字典数组,它是一个二维数组。因此字典中的每个单词在二维数组中占据一行。同样的,我的输入数组也是一个二维数组。我想检查输入数组中行/单词的拼写。 我无法使用 strcmp

输入数组的示例['boy','girll','.','friend',' '] - 可以包含空格、标点符号和单词。我们只关心单词的拼写如果标点符号/空格与单词进行比较,我们会忽略它并移至下一个单词。

字典示例['男孩','女孩','牛'...] - 都是单词

我的代码是:

 for (int a = 0; a < MAX_INPUT_SIZE + 1; a++)
{

for (int b = 0; b < MAX_DICTIONARY_WORDS; b++)
{

if(tokens[a]==dict_token[b])
{
printf("correct");
}
else
{
printf("wrong");
}

}


}

输出全部“错误”。虽然输入的 6 个单词中有 5 个应该是正确的。

最佳答案

每个测试都会返回 false,因为您正在使用的比较,

if(tokens[a]==dict_token[b])

正在比较永远不会指向同一地址的两个指针,因为您正在测试的 token 位于与dict_token完全独立的内存位中您正在与它们进行比较的字典。

您需要将两个指针 tokens[a]dict_token[b] 传递给比较函数,该函数将执行逐个字母的比较,并且当它发现它们之间存在差异时,将返回一个值;当它到达两者的末尾而没有发现差异时,将返回另一个值。换句话说,您需要编写 strcmp 的实现。

关于在不使用 strcmp 的情况下比较 C 中两个二维数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52898285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com