Rimuovere la punteggiatura dalla stringa C ++

Rimuovere la punteggiatura dalla stringa C ++
Quando lavoriamo su progetti C ++, dobbiamo rimuovere i caratteri di punteggiatura per rendere il nostro codice leggibile e chiaro. Potresti intendere cancellare caratteri o simboli di punteggiatura da un numero di stringa inserito da un utente nel tuo programma per convertirlo in un numero intero, poiché la punteggiatura è potente. Hanno il potere di alterare completamente il significato della frase. Considerando che, C ++ ha creato una guida dettagliata sulla rimozione dei simboli di punteggiatura da una stringa.

Esistono alcuni metodi per rimuovere i simboli di punteggiatura da una stringa in C++. In questo articolo, esamineremo come rimuovere i segni di punteggiatura da una stringa utilizzando metodi diversi in C++.

Esempio 1: programma del metodo in stile C per rimuovere la punteggiatura in C++

Questa implementazione elimina tutti i simboli tranne gli alfabeti da una stringa utilizzando il metodo String in stile C immesso dall'utente.

Innanzitutto, abbiamo il metodo principale del programma. Nel principale, abbiamo un array di carbone come "Strline" e impostare il limite dell'array Char su "50". Inoltre, abbiamo definito un altro array di carbone, "charstring" di limite "50". Quindi, una variabile "int" come "n" e inizializzala con lo zero. Il comando Cout stamperà l'istruzione "Inserisci una stringa" per un utente. Attraverso il CIN.Approccio GetLine, l'utente inserirà la stringa. La stringa inserita dall'utente verrà controllata nella condizione di Loop, che verificherà se il carattere "strline" non è alla fine della stringa.

Quindi l'istruzione, se l'istruzione eseguirà la condizione in cui la stringa immessa ha l'alfabeto minuscolo e maiuscolo e verificherà se la stringa ha solo caratteri o no. Abbiamo inizializzato l'array "charstring" con i caratteri zero su cui il programma ha terminato come stringa ha il suo valore finale di zero caratteri.

#includere
Utilizzo dello spazio dei nomi std;
int main ()
Char Strline [50], Charstring [50];
int n = 0;
cout<= 'a' &&StrLine[i]= 'A' &&StrLine[i]<='Z'))

Charstring [n ++] = strline [i];


Charstring [n] = '\ 0';
cout<< "Resultant String: " <restituzione 0;

La stringa inserita dall'utente ha alcuni caratteri di punteggiatura, che vengono rimossi nella stringa risultante con il metodo in stile C.

Esempio 2: Programma di utilizzo del metodo STD :: Remove_if per rimuovere la punteggiatura in C++

Un'opzione semplice per rimuovere la punteggiatura da una stringa è utilizzare l'algoritmo standard "std :: remow_if" con la funzione String :: Cancella membro. Poiché l'algoritmo "std :: remow_if" non ha accesso al contenitore della stringa, può rimuovere solo i segni di punteggiatura nella stringa. Emette un iteratore che indica dove dovrebbe essere la terminazione, che può essere rimossa usando il metodo STD :: ERASE.

Il metodo principale di questo programma ha un modo standard di classe stringa per dichiarare una stringa come "mystring" e inizializzarla con la stringa contenente un carattere di punteggiatura. Quindi, abbiamo una variabile di tipo "auto" come "Rimuovi", abbiamo usato il metodo std :: remow_if. Nel metodo, abbiamo una funzione Begin () per il primo iteratore dei caratteri della stringa e la fine () per gli ultimi caratteri iteratore per la stringa "mystring". Abbiamo un carl carl di array di variabile di riferimento "s". Crea una copia di ogni personaggio.

L'ispuntico () viene quindi chiamato per controllare che l'array contenente elementi è il carattere. Dopo questo metodo di cancellazione che rimuove la punteggiatura dalla stringa fino all'ultimo carattere della stringa.

#includere
#includere
#includere
#includere
int main ()

std :: string mystring = "lui!@|| ll@o.++| ";
auto rimozione = std :: remow_if (mystring.inizia (), mystring.FINE(), []
(Char Const & S)

return std :: ispunct (s);
);
Mystring.Cancella (rimuovi, mystring.FINE());
std :: cout<restituzione 0;

La stringa mostrata nell'immagine non ha un simbolo di punteggiatura; Viene restituita solo la stringa con i personaggi.

Esempio 3: programma di utilizzo di un circuito inverso per rimuovere la punteggiatura in C++

In alternativa, potremmo utilizzare un loop convenzionale per individuare le punteggi nella stringa data e cancellarle con il metodo String :: Cancella. Il ciclo dovrebbe essere inversa per evitare le prestazioni non deterministiche rimuovendo i componenti durante l'iterazione.

La stringa è definita con il nome "String_str" come in una classe standard di stringa e la stringa contiene la stringa con alcuni caratteri alfabeti e alcuni simboli di punteggiatura. Dopo la dichiarazione di stringa, abbiamo un ciclo per iterare su ciascun carattere di stringa in ordine invertito. Quindi, abbiamo una funzione ispunta che verifica i caratteri di punteggiatura nella stringa specificata nella condizione if. Se viene trovato un carattere di punteggiatura, verrà cancellato nella funzione di cancellazione.

#includere
#includere
#includere
int main ()

std :: string string_str = "c '| plus [pluspro@gr @@^a & mm!-ing ";
per (int i = string_str.size () - 1; i> = 0; io--)
if (ispunct (string_str [i]))
String_str.cancella (i, 1);


std :: cout<< "String :" <restituzione 0;

La stringa risultante non ha carattere di punteggiatura, come mostrato nella seguente immagine.

Esempio 4: programma utilizzando una funzione personalizzata per rimuovere la punteggiatura in C++

In alternativa, la procedura precedente può essere spostata in una funzione separata, che genera una copia locale della stringa e opera su di essa, restituendo il valore formattato al codice originale. La funzione personalizzata viene utilizzata per migliorare la funzionalità per consentire set di caratteri distinti o persino di passare la funzione criterio personalizzato per il terzo parametro dell'algoritmo di remove_if.

Abbiamo la definizione della funzione come "remokpunction" nel seguente programma e abbiamo superato il riferimento della stringa "STR" come parametro. Nella funzione, abbiamo "temp" come funzione a cui passiamo "STR. Quindi, abbiamo una funzione di cancellazione che chiama la funzione std :: remow_if.

Successivamente, abbiamo il metodo principale in cui abbiamo definito e inizializzato una stringa "contenuto". Inoltre, la funzione ha invocato la funzione sopra specificata "remoypunctation" qui a cui viene passata la stringa "contenuto". La stringa analizzata verrà stampata dopo aver rimosso i simboli di punteggiatura.

#includere
#includere
#includere
#includere
usando std :: cout; usando std :: cin;
usando std :: endl; usando std :: string;
String removePunctuation (const String & Str)
String temp (STR);
temp.cancella (std :: remow_if (temp.inizia (), temp.end (), ispunct), temp.FINE());
restituire temp;

int main ()
String Content = "Avere | ,! a @@^() g ^^ o!OD D@++ ay |?";
cout<< "string content:" << content <String Format_Content = remokpunctation (content);
cout<< "Parsed string :" <restituzione 0;

La stringa con caratteri di punteggiatura e la stringa senza i caratteri di punteggiatura vengono visualizzate qui nella schermata di output.

Conclusione

Per riassumere, abbiamo coperto diversi modi in C ++ per rimuovere i caratteri di punteggiatura da una stringa. È possibile utilizzare i quattro metodi sopra discolicati per rimuovere tutti i caratteri di punteggiatura da una stringa. Questi metodi ti danno una stringa di punteggiatura del filtro in c++. Leggendo l'articolo, puoi scoprire quale di questi approcci è più conveniente.