View Full Version : [C++] prendere le prime n consonanti da una stringa..?!
ciao ragazzi, come da titolo sto cercando per mari e per monti un codice che mi permetta di prendere le prime n consonanti da una stringa in c++ :D come diavolo si può fare? non so neanche da dove partire onestamente...
Vorrei arrivare ad un risultato del tipo:
stringa originale:
prova
stringa che voglio avere in output:
prv
che codici posso utilizzare?! :D
Grazie! :)
killercode
24-10-2010, 11:45
crei una mappa con tutte le lettere dell'alfabeto del tipo lettera:0 se vocale, 1 se consonante; poi analizzi la stringa lettera per lettera e confronti con la mappa
http://www.cplusplus.com/reference/string/string/
http://www.cplusplus.com/reference/stl/map/
crei una mappa con tutte le lettere dell'alfabeto del tipo lettera:0 se vocale, 1 se consonante; poi analizzi la stringa lettera per lettera e confronti con la mappa
http://www.cplusplus.com/reference/string/string/
http://www.cplusplus.com/reference/stl/map/
uao velocissimo :D e per quanto riguarda le prime tre lettere che prendo?
ps grazie mille...sto studiando fondamenti di informatica e mi sto avvicinando piano piano al c++ :rolleyes:
clockover
24-10-2010, 12:34
Oppure potresti fare un ciclo che scandisce lettera per lettera così puoi fermarti quando hai raggiunto n consonanti! Ad ogni lettera richiami un metodo che controlla se è una vocale e negandola hai la consonante!
Oppure potresti fare un ciclo che scandisce lettera per lettera così puoi fermarti quando hai raggiunto n consonanti! Ad ogni lettera richiami un metodo che controlla se è una vocale e negandola hai la consonante!
Si volevo postare anche io questa soluzione, tuttavia funziona solo nell'ipotesi in cui la stringa contiene solo lettere (niente spazi, virgole o quant'altro).
Certo si potrebbe fare una condizione un po' più grossa che accetta tutte le lettere dalla b alla z escluse 'e', 'i', 'o', 'u' :D.
clockover
24-10-2010, 19:06
tuttavia funziona solo nell'ipotesi in cui la stringa contiene solo lettere (niente spazi, virgole o quant'altro)
giusto non ci avevo proprio pensato...
Si volevo postare anche io questa soluzione, tuttavia funziona solo nell'ipotesi in cui la stringa contiene solo lettere (niente spazi, virgole o quant'altro).
Certo si potrebbe fare una condizione un po' più grossa che accetta tutte le lettere dalla b alla z escluse 'e', 'i', 'o', 'u' :D.
con la map del c++ funziona. Se la lettera non e' presente nella mappa allora viene inserita col valore di default (i.e. false in questo caso).
Per cui si puo' inserire solo le consonanti nella mappa. Oppure si una un set<> e si verifica la sola presenza. oppure un bel switch che e' anche piu' veloce.
con la map del c++ funziona. Se la lettera non e' presente nella mappa allora viene inserita col valore di default (i.e. false in questo caso).
Per cui si puo' inserire solo le consonanti nella mappa. Oppure si una un set<> e si verifica la sola presenza. oppure un bel switch che e' anche piu' veloce.
Il set è la via più elegante senza dubbio :D.
Lo switch in questo caso non è poi tanto diverso dall'if che proponevo (sicuramente è più leggibile) :D.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.