【发布时间】:2018-10-19 18:45:13
【问题描述】:
我正在用 C 创建一个拼写检查器。我有一个字典数组,它是一个二维数组。所以字典中的每个单词在二维数组中占一行。同样,我的输入数组也是一个二维数组。我想检查输入数组中行/单词的拼写。 我无法使用 strcmp
输入数组示例 ['boy','girll','.','friend',' '] - 可以包含空格、标点和单词。我们只关心拼写单词 如果将标点符号/空格与单词进行比较,我们将忽略它并移至下一个单词。
字典示例 ['boy','girl','cow'...]-都是单词
我的代码是:
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 个应该是正确的。
【问题讨论】:
-
你能发布更多代码吗?例如,
tokens和dict_token在哪里声明? -
看看
strcmp -
获取tour,阅读How to Ask,和[MVCE]。
-
我们需要看看
tokens和dict_token是什么才能提供帮助。 -
我要补充一点,你的做法是错误的。您正在比较两个数组中彼此没有明显对应关系的字符。将您的数据集减少到一些示例来演示您的问题并发布这些示例。通常,您希望遍历输入中的单词,然后在字典中搜索它们。如果字典是某种二叉树就更好了,但你可以使用指向单词的排序指针数组和
bsearch来执行二叉搜索吗?