Dato un array di stringhe stamapare quante parole contengono la sillaba DO

di Anonimizzato21703 il
7 risposte
Salve ragazzi!! Come ho scritto nel titolo devo scrivere un programma in C che dichiarato un array di stringhe, con parole che vogliamo noi, esso ci dica in output quante sono le parole che contengono la sillaba DO!!

Non ho idea di come impostare l'esercizio qualcuno potrebbe darmi una mano?

7 Risposte

  • Comincia con un problema più semplice: scrivi una funzione che data una stringa (contenente una parola) restituisca 1 o 0 a seconda che contenga o meno "DO".
  • Anzi ... comincia con "dichiarare l'array di stringhe con le parole che vuoi tu".
  • Ho provato a tirare giù questo codice ma non mi funziona, so però che la strad è quella giusta oppure no?

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>

    int do_finder(char m[], int n){

    int i, do_counter = 0;

    for(i=0; i<n; i++){
    if(strstr(m,"do") != 0){
    do_counter++;
    }
    }
    return do_counter;
    }

    int main () {
    int do_number;
    char mat[10][10]={"Dino","Dosso"};

    printf("Il numero di parole con la sillaba 'do' e' %d.", do_finder(do_number, mat));




    return 0;
    }
  • In questo codice non riesco a capire cosa sbaglio! La funzione do_finder dovrebbe andarmi a cercare tutte le parole con "DO"
  • A parte che la chiamata a do_finder() dovrebbe darti qualche warning in compilazione, ti suggerisco caldamente di provare a lavorare con una sola stringa, poi quando la funzione che controlla una stringa è corretta allora puoi richiamarla per ogni singola stringa dell'array di stringhe.
  • Quindi la funzione do_finder() in questo senso é sbagliata?? Allora devo dichiarare anziché char mar[10][10] un array monodimebsionale
  • Forse sarebbe così la do_finder

    int do_finder( char m[10] , int n) {
    n=11;
    int i,do_counter=0;
    for(i=0; i<n;i++)
    istruzione del for come sopra

    Nel main metto

    char m[10]={scrivo la frase}
    int do_number;
    printf(.............%d, do_finder(mat,do_number));
Devi accedere o registrarti per scrivere nel forum
7 risposte