c - strstr 未返回所需结果

标签 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 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 askedSong[80];
    printf("%s", "Hey buddy, what is the good one today? ");
    fgets(askedSong, sizeof(askedSong), stdin);
    find_track(askedSong);
    return 0;
}

最佳答案

  1. 假设fgets后可以得到最后的“\n”。需要修剪它(如果您从键盘输入)。您可以尝试使用文件输入运行: yourexefile.exe < 输入.txt > 输出.txt 并发现它以某种方式起作用
  2. 假设在循环中找到结果后应该中断。

关于c - strstr 未返回所需结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67200945/

相关文章:

c - Mac 上 C 中的段错误 11

C strstr 无法正常工作

c - c中的数组迭代strstr

c - 无法让中断处理程序在 C 中工作

c - 查找数字是偶数还是奇数的最快方法是什么?

c - 有没有办法检查我的代理是否在线?

c - 如何在一行中增加或减少 C 函数调用中的指针参数值?

我可以使用 while(strstr(name[a],sname)!=NULL)

用 strstr 不行吗?

php - 有没有PHP函数可以找到中间字符串?