Wyszukiwanie tekstu w stringu - funkcja strstr

0

Witam. Napisałem kod na podstawie książki "Head First C" i okazało się, że kod nie działa poprawnie.. Szukam gdzieś błędu ale nie mogę znaleźć. Otóż za każdym razem, gdy wpisuje "szukany" tekst, wyświetla mi się Not found..[x5, bo pętla ma 5 obiegów]...

 
#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", i, tracks[i]);
        else printf("Not found...\n");

}
int main()
{
    char search_for[80];
    printf("Search for text: ");
    fgets(search_for, 80, stdin);
    find_track(search_for);
    return 0;
}
1

fgets wczytuje tekst razem ze znakiem entera.

fgets(...);
int len = strlen(search_for);
if (len>0 && search_for[len-1]=='\n')
  search_for[len-1] = '\0';
0

Ahh oczywiście. Dzięki za poprawienie, zamiana fgets na "scanf("%79s", search_for);" pomogła.

1 użytkowników online, w tym zalogowanych: 0, gości: 1