Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] stringhe - vocali

    Ciao a tutti.
    Avrei bisogno di implementare la seguente funzione:


    ListaInt vocali(char* tab[], int dim)

    La procedura prende in ingresso una tabella tab di dimensione dim di stringhe, e restituisce una lista i cui elementi corrispondono al numero di vocali presenti nelle parole delle stringhe contenute nella tabella, nello stesso ordine (il primo elemento della lista restituita deve contenere il numero di vocali del primo elemento della tabella, e cosi' via).

    es: lettera ha 3 vocali; casa ne ha 2...

    nb. Gli elementi del tipo ListaInt sono liste semplici di interi.

    typedef struct ListaElem{int valore; struct ListaElem* next;} Elem;
    typedef Elem* ListaInt;




    Grazie a tutti.
    Ciao

  2. #2
    ti fai un primo for esterno che prende tutte le stringhe della 'tabella'.
    Dentro a questo for te ne fai un altro che ti scandisce ogni singola stringa dall'inizio alla fine e confronta il carattere se e' una vocale oppure no(se si incrementi un contatore).

    In pseudocodice potrebbe essere:1

    int cont,i,j;
    int*pippo=//allocazione dinamica
    for(i=0;i<dim;i++)
    {
    cont=0;
    for(j=0;j<strlen(tab[i]);j++)
    [
    if((*(tab[i]+j)=='a')&& //per tutte le altre vocali) cont++;
    }
    pippo[i]=cont;
    }

  3. #3
    Avevo fatto cosi

    ListaInt vocali(char* tab[], int dim) {
    int i, j, ctr;
    ListaInt l=NULL;
    ListaInt aux=NULL;

    for (i=0; i<dim; i++) {
    ctr=0;
    j=0;
    while ( *(tab[i]+j) != '\0' ) {
    if ( *(tab[i]+j) == 'a' || *(tab[i]+j) == 'e' || *(tab[i]+j) == 'i' || *(tab[i]+j) == 'o' || *(tab[i]+j) == 'u' ) {
    ctr++;
    }
    j++;
    }
    if (l!=NULL) {
    aux = (ListaInt) malloc (sizeof(Elem));
    aux->valore = ctr;
    aux->next=NULL;
    aux=aux->next;
    } else {
    l = (ListaInt) malloc (sizeof(Elem));
    l->valore = ctr;
    l->next=NULL;
    aux=l->next;
    }
    }
    return l;
    }

    Sarebbe ideale avere un listato scritto in maniera migliore magari da confrontare al mio...

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.