Esercizio in C

di il
6 risposte

Esercizio in C

Ciao a tutti, sto imparando a programmare. Come faccio a scrivere un programmino che legga alcune stringhe di caratteri alfabetici (sono solo le vocali) di lunghezza e numero indefinito, per poi fare la conta di ciascuna vocale in ogni stringa?
Grazie

6 Risposte

  • Re: Esercizio in C

    Hai delle conoscenze di base o no? Cosa hai studiato? Hai mai scritto un piccolo programma?
  • Re: Esercizio in C

    Si,ho le basi e sto imparando a usare vettori, puntatori, stringhe..il livello è questo.
  • Re: Esercizio in C

    Il testo preciso dell'esercizio qual è? Comunque non ti servono le stringhe in linea teorica, ti basta un while con la getchar() ed un if per controllare se il carattere inserito sia una vocale o meno ed in tal caso incrementare la variabile che usi per contarle
  • Re: Esercizio in C

    Info31 ha scritto:


    Si,ho le basi e sto imparando a usare vettori, puntatori, stringhe..il livello è questo.
    Quindi comincia a buttare giù del codice ...
  • Re: Esercizio in C

    "Il programma deve acquisire da standard imput alcune righe distinte di sequenze vocaliche, di numero e lunghezza non definiti, eseguire la conta delle occorrenze di ciascuna vocale per ogni riga e infine stampare un risultato del tipo "Vocale : n riga, n occorrenze" (ovviamente per tutte le vocali presenti)".
    Io per ora ho pensato di fare così: 1. creo una funzione del tipo
    int conta ( char v[], char x){
    int numero=0;
    int i;
    for(i=0; v != '\0'; i++){
    if (v == x){
    numero++;
    }
    }
    return numero;
    }
    ma non so come creare un vettore di lunghezza non definita;
    poi nel main dovrei richiamare questa funzione per ogni vocale, all'interno di un ciclo che scorra tutte le righe (vettori) , e che stampi il risultato corrispondente. Il problema principale rimane il fatto che non so come creare vettori di lunghezza indefinita, e come creare un indice appropriato per scorrere i "vettori riga".
  • Re: Esercizio in C

    Io non credo sia necessario gestire l'input con un vettore, potresti usare semplicemente getchar() in un modo simile a questo, a patto di far terminare l'input con l'EOF che è tipicamente ctrl+D o ctrl+Z:
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    
    
    int main(void)
    {
        int ch;
        int count_a = 0;
    
        while((ch = getchar()) != EOF) {
            if(tolower(ch) == 'a') {    /*tolower serve affinché il programma sia case-insensitive*/
                ++count_a;
            }
        }
    
        printf("La lettera 'a' compare %d volte\n", count_a);
    
        return EXIT_SUCCESS;
    }
    
Devi accedere o registrarti per scrivere nel forum
6 risposte