登录

c++ - 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++
阿神阿神2147 天前585 次浏览

全部回复(1) 我要回复

  • 大家讲道理

    大家讲道理2017-04-17 11:14:27

    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

    回复
    0
  • 取消回复发送