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^^