Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93

    [C] Funzione consonanti

    Salve mi sono creato questa funzione che mi conti il numero di consonanti presenti in una stringa... la funzione è la seguente

    codice:
    int Consonante(char ch[], int dim){// funzione conta consonanti
    int i, cont=0;
    
    for(i=0; i<=dim; i++){
    
    if ((ch[i] != 'a') && (ch[i] != 'e' ) && (ch[i] != 'i') && (ch[i] != 'o' )&& (ch[i] != 'u')&&
    		(ch[i] != 'A')&& (ch[i] != 'E') && (ch[i] != 'I') &&
    		(ch[i] != 'O') && (ch[i] != 'U'))
    {cont++;};
    }
    
    return cont;
    }
    il problema è che se inserisco milano in input mi restitusce 2 ... non capisco il problema

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    1) come hai provato la tua funzione?

    2) se dim è la lunghezza della stringa deve essere <dim e non <=dim

    3) a che ti serve fornire la dim se con la strlen puoi determinare la lunghezza della stringa?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Inoltre, non è che se un carattere non è una vocale necessariamente è una consonante...
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Originariamente inviato da MItaly
    Inoltre, non è che se un carattere non è una vocale necessariamente è una consonante...
    Sono d'accordo.

    La programmazione difensiva è alla base di ogni software efficace, sicuro e quindi error proof: nella fattispecie ti consiglio di fare un controllo sull'input per verificare che non siano inseriti numeri e/o simboli, oppure di modificare la funzione Consonante in modo tale da contemplare la possibilità di stringa alfanumerico-simbolica e di stringa nulla.
    Potresti inoltre considerare l'utilizzo di un vettore contenente i caratteri da controllare (o i relativi codici ASCII) al posto del codice proposto.

  5. #5
    A tal proposito, potrebbero essere utili isalpha e tolower...
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.