Salve a tutti e buonasera.
Ero alle prese con un programmino quando mi ha dato un errore un po' insolito, ve ne parlo subito:
In primis la traccia dell'esercizio consiste nel far inserire dall'utente una stringa, per poi fargli inserire una parola di essa che vuole cambiare e poi la parola con cui vuole cambiarla.
Il codice e' il seguente:
codice:int posizionefrase=-1,contatore=0,lunghezzafrase,lunghezzaparola,lunghezzaparola2,trovata='false',t,i; char str[81],p[10]; printf("inserisci una frase max 80 caratteri: "); gets(str); printf("inserisci la parola che vuoi cambiare: "); gets(p); lunghezzaparola=strlen(p); char p2[lunghezzaparola]; printf("inserisci con quale parola sostituirla: "); gets(p2); lunghezzafrase=strlen(str); lunghezzaparola2=strlen(p2); do { posizionefrase=posizionefrase+1; if(str[posizionefrase]==p[0]) { contatore=1; trovata='true'; while((contatore<lunghezzaparola)&&(trovata)) { t=posizionefrase+contatore; if(str[t]!=p[contatore]) { trovata='false'; } else { contatore++; } } } } while((posizionefrase<(lunghezzafrase-lunghezzaparola))&&(!trovata)); printf("%d\n",posizionefrase); if (trovata) { for(i=0;i<lunghezzaparola2;i++) { t=posizionefrase+i; str[t]=p2[i]; } printf("%s\n",str); } else{printf("la parola non c'e' nella frase inserita.");}
Il problema mi viene dato dall'if subito dopo l'incremento della variabile "posizionefrase", praticamente mi entra in quell'if nonostante la condizione non sia vera.
Attendo con ansia delucidazioni e vi ringrazio in anticipo^^

Rispondi quotando