循环遍历数组以查找令牌并在C中转换令牌

时间:2014-10-04 21:06:04

标签: arrays loops token

我正在创建一个函数来遍历一个字典数组,搜索一个单词的实例并返回所提供单词的翻译,该单词位于数组的奇数索引中。我的输出仍然是“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];
}

1 个答案:

答案 0 :(得分:1)

您没有使用正确的方法来比较C中的字符串。==运算符正在比较指针。相反,您需要使用字符串比较运算符,例如strcmp()strncmp()

您还应该仔细考虑程序如何到达每个返回语句,以及i在每个实例中的价值。像您一样进行printf()测试是一个好主意 - 做更多的事情!