Usuń interpunkcję z String C ++

Usuń interpunkcję z String C ++
Podczas pracy nad projektami C ++ musimy usunąć znaki interpunkcyjne, aby nasz kod jest czytelny i jasny. Możesz wymazać znaki interpunkcyjne lub symbole z numeru ciągu wprowadzonego przez użytkownika do programu, aby przekonwertować go na liczbę całkowitą, ponieważ interpunkcja jest potężna. Mają moc, aby całkowicie zmienić znaczenie zdania. Biorąc to pod uwagę, C ++ stworzył szczegółowy przewodnik po usunięciu symboli interpunkcyjnych z ciągu.

Istnieje kilka metod usuwania symboli interpunkcyjnych ze sznurka w C++. W tym artykule przejdziemy przez sposób usunięcia znaków interpunkcyjnych z ciągu przy użyciu różnych metod w C++.

Przykład 1: Program metody w stylu C w celu usunięcia interpunkcji w C++

Ta implementacja eliminuje wszystkie symbole oprócz alfabetów z łańcucha za pomocą metody ciągów w stylu C wprowadzonym przez użytkownika.

Najpierw mamy główną metodę programu. Na podstawie mamy tablicę charytatywną jako „strline” i ustawiamy limit tablicy charytatywnej na „50”. Ponadto zdefiniowaliśmy kolejną tablicę charytatywną, „Charstring” z limitu „50”. Następnie zmienna „int” jako „n” i zainicjuj ją z zero. Polecenie Cout wydrukuje instrukcję „Wprowadź ciąg” dla użytkownika. Przez cin.Uzyskaj podejście, użytkownik wprowadzi ciąg. String wprowadzony przez użytkownika zostanie sprawdzony w stanie pętli, który sprawdzi, czy znak „strine” nie znajduje się na końcu ciągu.

Wówczas instrukcja IF wykonuje warunek, że wprowadzony ciąg ma małe i wielkie alfabet i sprawdź, czy ciąg ma tylko znaki, czy nie. Zainicjowaliśmy tablicę „Charstring” z zerowymi znakami, na których program zakończył się jako ciąg, ma swoją wartość końcową zero znaków.

#włączać
za pomocą przestrzeni nazw 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: " <powrót 0;

String wprowadzony przez użytkownika ma kilka znaków interpunkcyjnych, które są usuwane w wynikającym z tego ciągu metodą w stylu C.

Przykład 2: Program użycia metody STD :: DESPEME_IF w celu usunięcia interpunkcji w C++

Prostą opcją usunięcia interpunkcji z łańcucha jest wykorzystanie standardowego algorytmu „STD :: DESPINE_IF” z String :: Erase Member Funkcja. Ponieważ algorytm „STD :: DESPEM_IF” nie ma dostępu do kontenera ciągu, może usunąć tylko znaki interpunkcyjne w ciągu. Wyświetla iterator wskazujący, gdzie powinno być zakończenie, co można usunąć za pomocą metody STD ::.

Główna metoda tego programu ma standardowy sposób klasowego struktury, aby deklarować ciąg jako „MyString” i zainicjowanie go z ciągiem zawierającym jakiś znak interpunkcyjny. Następnie mamy zmienną typu „Auto” jako „Usuń”, zastosowaliśmy metodę std :: remove_if. W metodzie mamy funkcję początkowa () dla pierwszych znaków iteratora łańcucha i end () dla ostatniego iteratora znaków dla ciągu „MyString”. Mamy tablicę Const Const of Reference Zmienna „S”. Tworzy kopię każdej postaci.

ISPUNT () jest następnie wywoływany w celu sprawdzenia tablicy zawierającej elementy to charakter. Po tej metodzie usuwania jest stosowana, która usuwa interpunkcję od sznurka do ostatniego znaku sznurka.

#włączać
#włączać
#włączać
#włączać
int main ()

std :: String MyString = "on on!@|| ll@o.++| ";
automatyczne rezygnacja = std :: usuń_if (myString.początek (), MyString.koniec(), []
(char const & s)

return std :: Ispunct (s);
);
MyString.usuń (usuń, mystring.koniec());
STD :: Cout<powrót 0;

Ciąg pokazany na obrazie nie ma symbolu interpunkcyjnego; Tylko ciąg z znakami jest zwracany.

Przykład 3: Program używania odwrotnej pętli do usunięcia interpunkcji w C++

Alternatywnie możemy użyć konwencjonalnej pętli, aby zlokalizować interpunkcje w danym ciągu i usunąć je za pomocą metody String ::. Pętla powinna być odwrotna, aby uniknąć wydajności niedokerministycznej podczas usuwania komponentów podczas iteracji.

Ciąg jest zdefiniowany z nazwą „String_str” jak w standardowej klasie ciągu, a ciąg zawiera ciąg z niektórymi znakami alfabetu i niektórymi symbolami interpunkcyjnymi. Po deklaracji ciągu mamy pętlę, która będzie iterowana nad każdym znakiem ciągu w kolejności odwróconej. Następnie mamy funkcję Ispunct, która weryfikuje znaki interpunkcyjne w określonym ciągu w stanie IF. Jeśli zostanie znaleziony jakikolwiek znak interpunkcyjny, zostanie wymazany w funkcji wymazania.

#włączać
#włączać
#włączać
int main ()

std :: String String_str = "C '| Plus [pluspro@gr @@^a & mm!-ing ";
for (int i = string_str.rozmiar () - 1; i> = 0; I--)
if (ispunct (string_str [i]))
String_str.usunąć (i, 1);


STD :: Cout<< "String :" <powrót 0;

Wynikowy ciąg nie ma znaku interpunkcyjnego, jak pokazano na poniższym obrazie.

Przykład 4: Program wykorzystujący funkcję niestandardową do usunięcia interpunkcji w C++

Alternatywnie, poprzednią procedurę można przenieść do osobnej funkcji, która generuje lokalną kopię ciągu i działa na niej, zwracając sformatowaną wartość do oryginalnego kodu. Funkcja niestandardowa służy do ulepszenia funkcji, aby włączyć odrębne zestawy znaków, a nawet do przekazania niestandardowej funkcji kryterium dla trzeciego parametru algorytmu usuwania.

Mamy definicję funkcji jako „Usuń pozycję” w następującym programie i przekazaliśmy odniesienie ciągów „Str” jako parametr. W funkcji mamy „temp” jako funkcję, do której przekazujemy „Str. Następnie mamy funkcję usuwania wywoływania funkcji STD :: usuń_if.

Następnie mamy główną metodę, w której zdefiniowaliśmy i zainicjowaliśmy ciąg „treści”. Ponadto funkcja wywołała tutaj funkcję powyżej określoną „Usuń Kuntacje”, do której przekazuje się ciąg „Treść”. Przetestowany ciąg zostanie wydrukowany po usunięciu symboli interpunkcyjnych.

#włączać
#włączać
#włączać
#włączać
Używanie std :: cout; Używanie STD :: CIN;
Używanie std :: endl; za pomocą std :: ciąg;
String Movempuncation (const String & Str)
String Temp (Str);
Temp.Erase (std :: usuń_if (temp.początek (), temp.end (), Ispunct), temp.koniec());
Return Temp;

int main ()
String Content = "Have | ,! a @@^() g ^^ o!OD d@++ ay |?";
Cout<< "string content:" << content <String Format_Content = removepuncation (content);
Cout<< "Parsed string :" <powrót 0;

String z znakami interpunkcyjnymi i ciąg bez znaków interpunkcyjnych są wyświetlane tutaj na ekranie wyjściowym.

Wniosek

Podsumowując, omówiliśmy wiele sposobów w C ++, aby usunąć znaki interpunkcyjne z ciągu. Możesz użyć czterech wyżej wymyślonych metod usuwania wszystkich znaków interpunkcyjnych z łańcucha. Te metody dają filtr-out-out strain interpunkcji w C++. Czytając artykuł, możesz odkryć, które z tych podejść jest wygodniejsze.