#include #include int conta_parole(char *a, char *b) { int i=0,j=0,cont=0; for(i=0;a[i]!='\0';i++) a[i]=toupper(a[i]); //rendo a tutto MAIUSCOLO for(i=0;b[i]!='\0';i++) b[i]=toupper(b[i]); //rendo b tutto MAIUSCOLO i=0; while (1) { while ((a[i]!='\0')&&(a[i]==b[j])) { //scorro i caratteri uguali i++; j++; } if ((b[j]=='\0')&&(!isalpha(a[i]))) //cercando intere parole uguali cont++; while ((a[i]!=' ')&&(a[i]!='\0')) i++; //vado alla parola successiva if (a[i]=='\0') break; else i++; j=0; } return cont; } int main(void) { char a[101]; char b[21]; int res; printf("Inserisci una frase [Max 100 caratteri]: "); scanf("%100[A-Za-z ,'!?]", a); getchar(); //consumo il carattere a capo printf("Inserisci una parola [Max 20 caratteri]: "); scanf("%20[A-Za-z]", b); getchar(); //consumo il carattere a capo printf("Conto le occorrenze della parola \"%s\" nella frase \"%s\"\n",b,a); res=conta_parole(a,b); switch (res) { case 0: { printf("Non ho trovato alcuna occorrenza.\n"); break; } case 1: { printf("Ho trovato un occorrenza.\n"); break; } default : printf("Ho trovato %d occorrenze.\n",res); } exit(0); }