PDA

Visualizza la versione completa : [C++] Punteggiatura


Ronald940
16-10-2014, 17:44
Ciao ragazzi, ho bisogno di una mano con un esercizio di programmazione base in C++

"Scrivete un programma che legge una stringa contenente caratteri e segni di punteggiatura e stampa la stringa letta ma con tutti i segni di punteggiatura rimossi."

Io so farlo con l'iterator Erase_if ma non va bene al prof..

Forse lo vuole fatto solo con i ciclo e ovviamente usando ispunct().

Qualche idea?
Grazie

Scara95
16-10-2014, 21:13
Usa due variabili intere i,j, all'inizio le imposti a 0. Ad ogni ciclo leggi il carattere i e lo scrivi in j se non è un segno di punteggiatura, aumenti i, aumenti j se hai scritto. Arrivato alla fine assegni alla posizione attuale di j un '\0'.

Ronald940
17-10-2014, 00:35
È l'unico modo? Non si può semplificare ulteriormente? Tipo con il while e il metodo ispunct

MItaly
17-10-2014, 01:10
È l'unico modo? Non si può semplificare ulteriormente? Tipo con il while e il metodo ispunct
È il metodo standard e più efficiente (fai una singola passata) per fare cancellazioni in un vettore; lo si può implementare tranquillamente con un while (anche se personalmente trovo più comodo un for).

Scara95
17-10-2014, 08:11
È l'unico modo? Non si può semplificare ulteriormente? Tipo con il while e il metodo ispunct

Certo che si può semplificare ulteriormente! Scrivi una bella funzione che accetti un puntatore a funzione così se lo devi rifare non sei costretto a riscrivere tutto!

MItaly
17-10-2014, 11:51
Certo che si può semplificare ulteriormente! Scrivi una bella funzione che accetti un puntatore a funzione così se lo devi rifare non sei costretto a riscrivere tutto!
(che peraltro significa di fatto implementarsi la std::remove_if :stordita: )

Scara95
17-10-2014, 12:02
(che peraltro significa di fatto implementarsi la std::remove_if :stordita: )

Certo, ma se lo fai a manina un professore non può rifiutartelo (:

Loading