Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: [C]Vocali in una frase

  1. #1

    [C]Vocali in una frase

    Caio,
    devo fare un programma che data in infresso una frase (quindi anche gli spazzi tra una parola ed un' altra) dica all'utente quante quante vocali sono presenti nella frase.
    Però ho riscontrato 2 problemi quando lo compilo:
    1)Mi dice che la fgets è senza cast;
    2)Ad ogni
    codice:
     if(frase[cnt] =="vocale")
    mi dice che comparo un pointer con un integer ma, sinceramente non so proprio cosa voglia dire.

    Ecco il codice
    codice:
    //Numero di vocali in una frase
    #include <stdio.h> 
    #include <string.h> 
    int main() 
    { 
       char frase[200]; // assumo una lettura di max 199 caratteri (+ 1 per '\0')
       char a,e,i,o,u; 
       a=0;
       e=0;
       i=0;
       o=0;
       u=0; 
       int vocali, cnt; //cnt serve da contatore 
       vocali=0;
       printf("Scrivi una frase: \n");
       fgets("%lf", &frase[0]);
       for (cnt = 0; cnt < strlen(frase); cnt++) //strlen() - calcola la lunghezza di una stringa 
    
       {
          if(frase[cnt] =="a")
          {
             vocali++;
             a++;
          }
          else if(frase[cnt] =="e")
          {
             vocali++;
             e++;
          }
          else if(frase[cnt] =="i")
          {
             vocali++;
             i++;
          }
          else if(frase[cnt] =="o")
          {
             vocali++;
             o++;
          }
          else if(frase[cnt] =="u")
          {
             vocali++;
             u++;
          }
       } 
       printf("Numero di vocali %d\n",vocali); 
       printf("Numero di 'a' %d\n",a); 
       printf("Numero di 'e' %d\n",e); 
       printf("Numero di 'i' %d\n",i); 
       printf("Numero di 'o' %d\n",o); 
       printf("Numero di 'u' %d\n",u); 
       return 0; 
    }
    Ciao e grazie mille in anticipo
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    I caratteri (tipo char), vanno espressi con apici singoli, non con dippi apici con cui, appunto, si identificano le stringhe (puntatori a carattere).

    Sostituisci i doppi apici con i singoli apici.

    codice:
    'a' è il carattere (char) che rappresenta la lettera a
    "a" è una stringa (puntatore a char) di lungehzza 1 contenente la lettera a.
    Non ho controllato la correttezza del resto del codice, ho solo spiegato perchè dell'errore sul confronto fra puntatore e intero.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Ok grazie,
    l'ho sistemato come mi hai detto di fare e adesso mi da solo problema nellla fgets
    codice:
    //Numero di vocali in una frase
    #include <stdio.h> 
    #include <string.h> 
    int main() 
    { 
       char frase[200]; // assumo una lettura di max 199 caratteri (+ 1 per '\0')
       char a,e,i,o,u; 
       a=0;
       e=0;
       i=0;
       o=0;
       u=0; 
       int vocali, cnt; //cnt serve da contatore 
       vocali=0;
       printf("Scrivi una frase: \n");
       fgets("%lf", &frase[0]);
       for (cnt = 0; cnt < strlen(frase); cnt++) //strlen() - calcola la lunghezza di una stringa 
    
       {
          if(frase[cnt] =='a')
          {
             vocali++;
             a++;
          }
          else if(frase[cnt] =='e')
          {
             vocali++;
             e++;
          }
          else if(frase[cnt] =='i')
          {
             vocali++;
             i++;
          }
          else if(frase[cnt] =='o')
          {
             vocali++;
             o++;
          }
          else if(frase[cnt] =='u')
          {
             vocali++;
             u++;
          }
       } 
       printf("Numero di vocali %d\n",vocali); 
       printf("Numero di 'a' %d\n",a); 
       printf("Numero di 'e' %d\n",e); 
       printf("Numero di 'i' %d\n",i); 
       printf("Numero di 'o' %d\n",o); 
       printf("Numero di 'u' %d\n",u); 
       return 0; 
    }
    Come posso sistemarlo?
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  4. #4
    La fgets non si usa così... Hai letto la sua documentazione?
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Ciao
    l'ho sistemato così:
    codice:
    printf("Scrivi una frase: \n");
    fgets(frase);
    Però penso proprio che sia sbagliato, cosa devo ancora sistemare
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  6. #6

    Originariamente inviato da MItaly
    Hai letto la sua documentazione?
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Scusami,
    potresti mettermi gentilmente il link in quanto io non riesco a trovarlo?
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  8. #8
    Secondo risultato su Google cercando "fgets"
    http://digilander.libero.it/uzappi/C...oni/fgets.html
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Ciao,
    ho letto il link che mi hai consigliato ma non ho capito cosa devo mettere in :

    FILE *stream
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  10. #10
    Lo stream da cui leggere; nel tuo caso metterai stdin (lo stream da cui leggono di default scanf & co, che normalmente è collegato all'input da tastiera), ma ovviamente è possibile specificare anche uno stream che rappresenta un file.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.