strstr()不在C上工作

strstr()不在C上工作,c,linux,coredump,strstr,C,Linux,Coredump,Strstr,我有下面的代码。问题是,当我运行它时,它不会显示我所提示的搜索结果;尝试printf(“%s”),strstrstr(曲目[i],搜索])inside for会返回null,但对曲目[i]和搜索[u]执行相同操作没有问题。请帮忙 #include <stdio.h> #include <string.h> char tracks[][80]={ "I left my heart in Harvard Med Scholl", "Newark, Newark -

我有下面的代码。问题是,当我运行它时,它不会显示我所提示的搜索结果;尝试
printf(“%s”),strstrstr(曲目[i],搜索])
inside for会返回null,但对曲目[i]和搜索[u]执行相同操作没有问题。请帮忙

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

char tracks[][80]={
  "I left my heart in Harvard Med Scholl",
  "Newark, Newark - a wonderful town",
  "Dancing with a Dork",
  "From here to maternity",
  "The girl from Iwo 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, tracks[i]);
    }
  }
};

int main(){

  char search_for[80];
  printf("Search for: ");
  fgets(search_for, 80, stdin);
  find_track(search_for);
  return 0;
}
#包括
#包括
字符轨道[][80]={
“我把我的心留在了哈佛医学院”,
“纽瓦克,纽瓦克-一个美妙的小镇”,
“和傻瓜跳舞”,
“从这里到产妇”,
“硫磺岛的女孩”,
};
void find_track(char search_for[]){
int i;
对于(i=0;i,正如我们在文档中所看到的,如果在行尾有一个换行符,它将包含在生成的字符串中:

从给定的文件流读取最多count-1个字符,并将它们存储在str中。生成的字符串始终以NULL结尾。如果出现文件结尾或找到换行符,则解析将停止,在这种情况下,str将包含该换行符

因此,在这种情况下,如果我们输入
“Newark”
,那么我们有:

search_for[] = {'N', 'e', 'w', 'a', 'r', 'k', '\n', '\0', ...};
您将需要删除该额外的换行符。

正如我们在文档中所看到的,如果该行末尾有一个换行符,它将包含在生成的字符串中:

从给定的文件流读取最多count-1个字符,并将它们存储在str中。生成的字符串始终以NULL结尾。如果出现文件结尾或找到换行符,则解析将停止,在这种情况下,str将包含该换行符

因此,在这种情况下,如果我们输入
“Newark”
,那么我们有:

search_for[] = {'N', 'e', 'w', 'a', 'r', 'k', '\n', '\0', ...};

您将要删除额外的换行符。

谢谢!已解决包括
strtok(搜索“\n”);
谢谢!已解决包括
strtok(搜索“\n”);