[ miniplazma @ 04.12.2010. 23:24 ] @
Ukloniti sva pojavljivanja karaktera c iz stringa str (rekurzivno).
Meni se logika čini ok, ali javlja mi segmentation error kad dođe do strcpy(str,str+1). Ima li neko ideju u čemu je problem?


Code:
void Ukloni(char *str,char c)
{
    if (strlen(str)==0)
       return;
    else
    {
         if (str[0]==c)
         {
            strcpy(str,str+1);
            return Ukloni(str,c);
         }
         else return Ukloni(str+1,c);
    }

}
[ MasterRW @ 05.12.2010. 00:02 ] @
Nemam trenutno vremena da uradim ovo, ali mislim da str[0]==c nemože, moraš da koristiš strcmp (string compare) ili neku sličnu funkciju.

[ pajaja @ 05.12.2010. 15:43 ] @
Pozdrav,

ne bi trebalo da ti strcpy(str, str+1) nikad vraca segfault posto kopiras string manje duzine. Okaci ostatak koda ako ti nije problem. Posebno deo gde alociras memoriju za string i gde mu dodeljujes vrednost posto ovo najvise lici na 'los' string prosledjen funkciji.