Zdravím,
Když už tady je to téma s tím programováním tak by mě zajímalo tohle, protože jinde nemám kde koho otravovat. Mám úkol v Cčku napsat funkci, která vrátí počet výskytů podřetězce (slova) v řetězci. Nejsem s prácí s řetězci ješte tak sběhlej a na ten úkol mám ješte dost času, ale nešel mi net tak sem neměl co dělat  

. 
Úkol : 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*funkcni prototypy*/
int pocet_vyskytu(char *p_vyskyt, char *p_retezec);
int main(void) {
    int i, delka_vys, delka_ret;
    char *retezec, *vyskyt;
    retezec = (char *) malloc(101 * (sizeof(char)));
    vyskyt = (char *) malloc(31 * (sizeof(char)));
    printf ("Zadejte řetězec maximální délky 100 znaků: \n");
    fgets (retezec, 101, stdin);
    
    /*while (getchar() != '\n')
            ;
    */
    delka_ret = strlen(retezec);
    if (retezec[delka_ret-1] == '\n') {
       retezec[delka_ret-1] = '\0';
    }
    printf ("Zadejte hledaný řetezec: \n");
    fgets (vyskyt, 31, stdin);
    delka_vys = strlen(vyskyt);
    if (vyskyt[delka_vys-1] == '\n') {
       vyskyt[delka_vys-1] = '\0';
    }
    i = pocet_vyskytu(vyskyt, retezec);
    
 
    printf ("Počet výskytů řetězce %s je %d.\n", vyskyt, i);
    
}
int pocet_vyskytu(char *p_vyskyt, char *p_retezec) {
  
    int pocet = 0;
    char *p_c;
    p_c = (char *) malloc(100 * (sizeof(char)));
    
    while ((p_c = strstr(p_retezec, p_vyskyt)) != NULL) {
        pocet++;
        p_retezec = ++p_c;     
    }
    return pocet;
}a problém je v tom, že když zadám příliš dlouhou větu tak to zůstane v bufferu a automaticky se to použije ten zbytek i jako vyhledávaný řetězec a mě by zajímalo jestli tam lze dát nějakou podmínku na začátku jak mám zakomentovaný to while na vyprázdnění bufferu, že se to použije jen tehdy, když je to delší než má. 
Ukázka : 
Zadejte řetězec maximální délky 100 znaků: 
Pejsek s kocickou si koupily novej dum. Bydleli tam asi pul roku a pak si pejsek nasel jinou kocicku. Kocicka z toho byla nestatstna a sla pejska zabit, protoze to byl peknej zmetek. Zili bez sebe stastne az do smrti.
Zadejte hledaný řetezec: 
Počet výskytů řetězce . Kocicka z toho byla nestatst je 0.jinak to funguje  

. 
PS: Kod není určitě dokonalej a určitě se tam najde spousta blbých a zbytečných věcí  

. Začínám no  
