Jeśli nasz kod C ++ napotka przestrzenie podczas wykonywania któregokolwiek z tych poprzednich operacji, otrzymamy nieoczekiwane wyniki, takie jak niewłaściwe liczba znaków, niepoprawnie posortowane listy, niedokładne porównania ciągów i uszkodzone adresy URL. Domyślnie są one uważane za postacie białych, ja.mi., „\ N”, „\ t”, „”, „\ v”, „\ r”, „f”.
Czasami ważne jest, aby usunąć przestrzeń z strun w programowaniu, aby uniknąć nieoczekiwanych wyników. Dowiedz się, jak usuwać przestrzenie z ciągów i jak radzić sobie z dodatkowymi przestrzeniami z tym artykułem.
Przykład 1: Korzystanie z metody :: ISSPACE do usuwania białej listy z łańcucha w C++
Aby wyodrębnić znaki białych z STD :: Strings, wspólnym podejściem jest wykorzystanie STD :: Usuń metodę. Algorytm STD :: Usuń_IF nie eliminuje skutecznie znaków z łańcucha, ale raczej przesuwa wszystkie znaki z nie-białymi przestrzeniami z przodu i wytwarza iterator odnoszący się do końca. Metoda std :: remove_if wymaga predykatu, który decyduje, które znaki wymazują z łańcucha.
Metoda ISSPACE () jest tą, która jest określona w nagłówku CCTYPE i wyszukuje znaki Whitespace Kategoryzowane według zainstalowanej lokalizacji C.
Poniższy przykład zaczyna się od głównej funkcji. Deklaracja standardowej klasy stringowej jest zdefiniowana w głównej metodzie. Zmienna łańcuchowa jest zdefiniowana jako „Str” i jest inicjowana z ciągiem zawierającym znaki białych. Aby usunąć białe listy z łańcucha, zastosowaliśmy normalną procedurę usuwania.
Użyliśmy metody STD :: DESMEL_IF. W metodzie STD :: DESCE_IF przekazaliśmy funkcję „:: ISPACE” w poszukiwaniu postaci białych w danym ciągu. Ciąg po usunięciu białych listy zostanie wydrukowany na następującym ekranie:
#włączaćJak widać, nie można znaleźć znaku Whitespace w poniższym wyświetlanym ciągu:
Przykład 2: Korzystanie z metody STD :: ISSPACE do usuwania białej listy z ciągu w C++
W tym przykładzie używamy standardowej metody powiązania, aby usunąć białe znak z ciągu, wywołując funkcję STD :: ISSPACE. Zamiast zależeć od klasyfikacji znaków Whitespace przez C, możemy użyć std :: ISSPACE reprezentowany w lokalizacji nagłówka, w którym aspekt CTYPE określonego region.
Wiązanie funkcji z symbolami zastępczymi pozwala zmienić pozycję i ilość wartości, które funkcja będzie wykorzystywana, zmieniając funkcję na podstawie pożądanego wyniku.
Ciąg jest zdefiniowany jako „str_n” w głównej i jest inicjowany ze słowem łańcucha o znakach między nimi. W tym miejscu wywołaliśmy metodę usuwania ciągu „str_n”, w której używane są dwie funkcje std :: usuń_if i std ::. Zauważ, że użyliśmy STD :: ISSPACE w funkcji BIND do znalezienia białej listu w ciągu; Następnie metoda wymazania usunie białe znak z łańcucha i zwróci nowy ciąg wyników.
#włączaćPo opracowaniu poprzedniego programu powłoka wyświetla znaki inne niż Whitespace.
Przykład 3: Korzystanie z metody Unary to Usunięcie białych od sznurków w C++
Zamiast używać :: ispspace lub std :: ISSPACE, możemy utworzyć niestandardowy warunek, który zwraca true, jeśli postać jest znakiem białym lub fałszywym. Stworzyliśmy naszą niewielką metodę usuwania znaków białych z ciągu.
Stworzyliśmy nierzasną metodę „myfunkcji” typu danych Bool. Funkcja przeszła wraz z argumentem niepodpisanej zmiennej charm „mychar”. Wewnątrz funkcji mamy warunek powrotu, który zwraca określony znak Whitespace, jeśli zostanie znaleziony w ciągu.
Następnie mamy główną funkcję, w której ciąg jest generowany jako „MyString” i zawiera znaki ciągów z znakami białymi. Metoda usuwania jest stosowana poniżej w deklaracji stringowej, w której usuń_f. I funkcja „myfunkcja” nazywana jest wymazaniem znaków białych.
#włączaćWynikowy ciąg ma wszystkie znaki inne niż Whitespace pokazane na następującym ekranie powłoki:
Przykład 5: Korzystanie z metody Regex do usuwania białej listy z łańcucha w C++
Metoda Regex zastępuje () zastępuje wzór wyrażenia regularnego ciągiem zawierającym znaki białych. Omów to z przykładową demonstracją.
Program C ++ zawiera plik Regex w sekcji nagłówka, aby uzyskać dostęp do funkcji Regex_replace w programie. Int Main jest zdefiniowany, który ma integralną reprezentację ciągów z znakami Whitespace w zmiennej string „Stringis”. Następnie nazwaliśmy funkcję Regex w reprezentacji Regex i przekazaliśmy zmienną ciągną „Stringis” z operatorem „+”. Funkcja Regex_replace jest wywoływana przez zmienną ciąg „Stringis” do usuwania białych znaków lub znaków białych z podanego ciągu:
#włączaćRegex Wymień usuwa znaki Whitespace z ciągu całkowitego, który jest wydrukowany w powładzie poleceń Ubuntu.
Wniosek
W ten sposób możemy usunąć znaki Whitespace z ciągu w C ++ za pomocą różnych metod omówionych w tym artykule. Mamy wszystkie demonstracje tych przykładów z wynikowym wynikiem programu. Masz wystarczającą liczbę metod zastępowania lub usuwania białych przestrzeni z ciągów C ++. Wybierz dowolne metody, które Cię przyciągają, a jednocześnie są odpowiednie dla sytuacji.