strstr无法在循环内正常工作

时间:2019-06-12 21:40:20

标签: c

我首先从C语言开始学习C语言,我尝试编写一个小程序来搜索2d数组中的用户输入。

但是我的代码无法正常工作,并且总是返回false。

我的代码:

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

char songs[][50] = {"Meri aashiqui ab tum hi ho",
"Aaja Maahi",
"Tum mere ho",
"Akelapan",
"kangana tera ni"};

void search_tar(char target[]) {
    printf("Searching for %s ",target);
    int i;
    for ( i = 0; i < 5; i++)
    {
        if (strstr(songs[i],target))
        {
            printf("Found the track %s from the keyword",songs[i]);
        }
    }


}

int main()
{
    char target[50];
    printf("Find the song with a keyword: ");
    fgets(target,50,stdin);
    search_tar(target);
    return 0;
}

这本书的代码:

Code from book

我希望代码能够输出结果。

1 个答案:

答案 0 :(得分:0)

target中有一个'\n'-因此没有与strstr()匹配的模式。

读完该行后,切断该电位'\n'

target[strcspn(target,"\n")] = 0;