我正在创建一个函数来遍历一个字典数组,搜索一个单词的实例并返回所提供单词的翻译,该单词位于数组的奇数索引中。我的输出仍然是“ur is(null)”,当它应该是“你是不是”时,基于字典文件。
char *
translate(char **array, int count, char *token)
{
int i = 0;
while (i < count)
{
if (array[i] == token) //string compare
{
// i +=2;
// printf("%s\n",array[i]);
return array[i + 1];
i +=2;
printf("%s\n",array[i]);
}
return 0;
}
return array[i + 1];
}
答案 0 :(得分:1)
您没有使用正确的方法来比较C中的字符串。==
运算符正在比较指针。相反,您需要使用字符串比较运算符,例如strcmp()
或strncmp()
。
您还应该仔细考虑程序如何到达每个返回语句,以及i
在每个实例中的价值。像您一样进行printf()
测试是一个好主意 - 做更多的事情!