c++ - C语言中strstr()函数的使用问题
阿神
阿神 2017-04-17 11:12:27
0
1
1011
#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,这是为什么呢?

阿神
阿神

闭关修行中......

全員に返信(1)
大家讲道理

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
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート