Ciao! devo realizzare un programma che prenda due stringhe,le confronti e determini se sono anagrammi.In pratica vuole semplicemente che si verifichi se entrambe le frasi sono costituite dalle stesse lettere.Solo i caratteri alfabetici bisogna controllare:
Questo è quanto ho scritto ma non senza problemi......A un certo punto ho messo la stampa di string1a,come si può notare vengono stampati dei valori che non c'entrano nulla e non capisco dove vada a prenderli sinceramente,credevo che la condizione per verificare che i caratteri siano solo lettere maiuscole fosse giusta....ed effettivamente penso sia così,perchè stampando i contatori i valori tornano,è nel momento in cui a string1a vengono assegnati i valori di string1 che succede qualche casino.Sapete dove ho sbagliato?codice:#include <stdio.h>#include <stdlib.h> #define N 15 int main() { char string1[N]; char string2[N]; int i,j,c,count,d,verify; printf("\n\n inserire frase\n\n"); gets(string1); c=0; for(i=0;i<N;i++) { if(string1[i]>='A' && string1[i]<='Z') { c++; } } char string1a[c]; char string2a[c]; for(i=0;i<c;i++) { if(string1[i]>='A' && string1[i]<='Z') { string1a[i]=string1[i]; } } printf("\n\n inserire frase da confrontare\n\n"); gets(string2); d=0; for(i=0;i<N;i++) { if(string2[i]>='A' && string2[i]<='Z') { d++; } } for(i=0;i<d;i++) { if(string2[i]>='A' && string2[i]<='Z') { string2a[i]=string2[i]; } } for(i=0;i<c;i++) { printf("%c",string1a[i]); } if(d==c) { i=0; verify=0; do { j=0; count=0; do { if(string1a[i]==string2a[j]) { verify++; count++; string2a[j]=0; } j++; } while(count==0 && j<c); i++; } while(i<c); if(verify==c) { printf("\n\n sono anagrammi!\n\n"); } } else { printf("\n\n non sono anagrammi!\n\n"); } system("pause"); return 0; }
non entra nemmeno nel dowhile.....
Grazie mille...

Rispondi quotando
