C语言中strstr()函数的使用问题



 #include<stdio.h>
#include<string.h>
char tracks[][80]=
{
    "I left my heart in Harvard med school",
    "Newark,Newark-a wonderful town",
    "Dancing with a Dork",
    "From here to maternity",
    "The girl from two Jima",
};
void find_track(char search_for[])
{
    int i;
    for(i=0;i<5;i++)
    {
        if(strstr(tracks[i],search_for))
            printf("Track %i: '%s'\n",i+1,tracks[i]);      
    }
}
int main()
{
    char search_for[80];
    printf("Search for: ");
    fgets(search_for,80,stdin);
    find_track(search_for);
    return 0;
}

不管我输入什么字符串,strstr()函数返回的都是0,这是为什么呢? 这是我运行时的截图

c 编程 程序员 C++

飞翔的小菊花 10 years, 1 month ago

fgets() reads in at most one less than size characters from stream and stores them into the buffer pointed to by s. Reading stops after an EOF or a newline. If a newline is read, it is stored into the buffer . A terminating null byte ('\0') is stored after the last character in the buffer.

man fgets

又:

The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.

— Brian W. Kernighan, in the paper Unix for Beginners (1979) src

堇CAROL answered 10 years, 1 month ago

Your Answer