#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,这是为什么呢?
大家讲道理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 (' ') 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