C-字符数组中的单词搜索

时间:2019-04-03 19:48:40

标签: c arrays

我有一个函数,该函数将一个术语作为输入,在一系列术语中搜索该术语,然后返回匹配的术语的索引。我认为这是一个相当简单的函数,但是由于某些原因,它不会返回低于(6)的期望值。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

char terms[10][1024]={"land",
                 "duck",
                 "sea",
                 "chai",
                 "cars",
                 "bird",
                 "flower",
                 "ear",
                 "note",
                 "vent"};

int termFound(char term[1024]){
    for (int i=0;i<10;i++){
        if (strcmp(terms[i], term)==0){
            return i;
        }
        return -1;
    }
}


int main(){
    printf("%d\n", termFound("flower"));
}

1 个答案:

答案 0 :(得分:1)

编译器警告C4715:'termFound':并非所有控制路径都返回值。

您的函数在到达“花朵”之前的第一次迭代中返回。

return -1;必须在循环之外。

int termFound(char term[1024]){
    for (int i=0;i<10;i++){
        if (strcmp(terms[i], term)==0){
            return i;
        }
    }
    return -1;    // moved down
}

您已经解决了重复char terms[10][1024]定义的错误。