string functions c
W tym samouczku omówimy niektóre popularne funkcje ciągów w C ++, takie jak podciąg getline, długość ciągu, znajdowanie ciągu, podzielenie ciągu itp .:
C ++ ma klasę ciągów, która jest używana dla sekwencji znaków, znanej również jako ciągi. Ta klasa jest std :: string . Ta klasa przechowuje ciągi jako sekwencję bajtów znaków i zapewnia funkcje, które pozwalają nam manipulować, uzyskiwać dostęp i odczytywać ciągi, a także uzyskiwać dostęp do pojedynczych znaków i manipulować nimi.
rodzaj testowania w inżynierii oprogramowania
=> Odwiedź tutaj, aby zapoznać się z pełnym kursem C ++ od ekspertów.
Czego się nauczysz:
Funkcje ciągów C ++
Ciąg w C ++ to sekwencja znaków. Kiedy definiujemy łańcuchy w C ++, używamy łańcucha
słowo kluczowe, które jest niczym innym jak klasą std :: string. Ta klasa string obsługuje różne funkcje, takie jak odczytywanie łańcucha, manipulowanie, uzyskiwanie dostępu do łańcucha itp., Które wykonują różne operacje na obiektach łańcuchowych. Poniżej wymieniono niektóre często używane funkcje -
Nie rób | Funkcje łańcuchowe | Opis |
---|---|---|
1 | getline | Pobiera wiersz ze strumienia do ciągu |
dwa | substr | Pobierz podciąg z danego ciągu |
4 | Długość, strlen | Uzyskaj długość sznurka |
5 | Odnaleźć | Znajdź treść w ciągu |
6 | Strtok, substr z ogranicznikiem | Podziel ciąg na tokeny |
getline C ++
Prototyp funkcji: istream i getline (istream & is, string & str)
Parametr (y): is => istream obiekt, z którego wyodrębniane są znaki.
str => Obiekt typu String używany do przechowywania wyodrębnionego znaku.
Wartość zwracana: Wartość zwracana jest taka sama jak istream. Wewnętrznie wykonanie getline ustawia pewne wewnętrzne flagi w następujący sposób.
flaga | Opis błędu |
---|---|
eofbit | Osiągnięto koniec źródła znaków |
failbit | Dane wejściowe nie mogą być interpretowane jako poprawna tekstowa reprezentacja obiektu tego typu |
badbit | Każdy inny błąd oprócz dwóch powyższych |
Opis: getline to standardowa funkcja biblioteczna. Ta funkcja służy do odczytywania wiersza lub ciągu ze standardowego strumienia wejściowego, takiego jak istream. Linie lub łańcuchy są odczytywane do momentu napotkania znaku „ n”, który jest traktowany jako znak rozgraniczający.
Jako inna wersja getline można określić trzeci parametr „separator znaków”. To jest jawnie określony separator. W tej funkcji wiersz tekstu lub ciąg będzie czytany do momentu napotkania określonego znaku ogranicznika.
Poniżej podany jest prosty przykład pokazujący użycie getline.
Przykład:
#include #include using namespace std; int main() { string mystr; cout<<'Enter the input string:'< Wynik:
Wpisz ciąg wejściowy:
Samouczki C ++
Wprowadziłeś: samouczki C ++

W powyższym przykładzie czytamy ciąg wejściowy za pomocą funkcji getline. Zwróć uwagę, że wprowadzone ciągi lub tekst są wczytywane do obiektu łańcuchowego mystr do momentu napotkania „ n”.
C ++ Substr
Prototyp funkcji: string substr (size_t startpos, size_t endpos)
Parametr (y): startpos => Pozycja początkowa, z której ma zostać wyodrębniony podciąg.
endpos => Pozycja końcowa podciągu.
Wartość zwracana: Zwraca ciąg, który jest podłańcuchem ciągu nadrzędnego.
Opis: Ta funkcja zwraca podłańcuch z danego ciągu. Funkcja przyjmuje pozycje początkową i końcową jako parametry, a następnie zwraca sekwencję znaków między tymi pozycjami.
Przykład:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; string mysub = mystr.substr(0,8); cout<<'Input string : '< Wynik:
Ciąg wejściowy: SoftwareTestingHelp
Podciąg (0,8): Oprogramowanie

Długość w C ++
Długość ciągu to liczba znaków występujących w ciągu. Obiektowa reprezentacja łańcuchów std :: string w C ++ wykorzystuje funkcje length () do zwracania długości łańcucha.
Oprócz tego mamy też metodę size, która zwraca rozmiar łańcucha. W poniższym przykładzie wykorzystaliśmy metodę size dla funkcji length (). Inną funkcją zwracającą długość ciągu jest „strlen”. Ta funkcja zwraca długość ciągu oznaczonego tablicą znaków.
Zobaczymy obie funkcje po kolei z przykładami.
długość()
Prototyp funkcji: size_t długość ()
Parametr (y): Wywołane przez łańcuch, którego długość ma zostać sprawdzona.
Wartość zwracana: Zwraca parametr typu size_t, który jest długością ciągu.
Opis: Ta funkcja znajduje długość obiektu łańcuchowego, przez który jest wywoływana.
Przykład:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; cout<<'Input string : '< Wynik:
Ciąg wejściowy: SoftwareTestingHelp
Długość łańcucha (z metodą length) to: 19
Rozmiar napisu (z metodą size) to: 19

W powyższym programie używamy funkcji długości i rozmiaru std :: string, która zwraca odpowiednio długość i rozmiar obiektu string. Ponieważ długość i rozmiar zwracają liczbę znaków w ciągu, otrzymujemy ten sam wynik.
strlen ()
Prototyp funkcji: size_t strlen (const char * str);
Parametr (y): str => Wskaźnik do łańcucha zakończonego znakiem null, którego długość należy sprawdzić.
Wartość zwracana: R. eturns size_t wartość oznaczająca długość łańcucha str.
Opis: Funkcja strlen () zwraca długość łańcucha zakończonego znakiem null. Ciąg, który jest traktowany jako parametr przez funkcję strlen, jest tablicą znaków zakończonych znakiem null.
Przykład:
#include #include using namespace std; int main() { char mystr1() = 'This a our first string'; char mystr2() = 'This is our second string'; int len_mystr1 = strlen(mystr1); int len_mystr2 = strlen(mystr2); cout << 'Length of mystr1 = ' << len_mystr1 << endl; cout << 'Length of mystr2 = ' << len_mystr2 << endl; if (len_mystr1> len_mystr2) cout << 'mystr1 is longer than mystr2'; else if (len_mystr1 < len_mystr2) cout << 'mystr2 is longer than mystr1'; else cout << 'mystr1 and mystr2 are equal in length'; return 0; }
Wynik:
Długość mystr1 = 23
Długość mystr2 = 25
mystr2 jest dłuższe niż mystr1

W powyższym programie zdefiniowaliśmy dwa różne łańcuchy, a ich indywidualną długość znajdujemy za pomocą funkcji strlen. Następnie porównujemy długość dwóch strun i określamy, czy są one równe czy nierówne.
C ++ Znajdź
Prototyp funkcji: size_t find (string mysub)
Parametr (y): mysub => obiekt String do znalezienia w ciągu nadrzędnym.
Wartość zwracana: size_t => Pierwsza pozycja podciągu w ciągu nadrzędnym
najlepszy darmowy anty spyware windows 10
Opis: Funkcja find ciągu służy do znajdowania pozycji podciągu w ciągu nadrzędnym. Ta funkcja jest wywoływana przez ciąg nadrzędny, a podciąg, którego położenie ma zostać znalezione, jest przekazywany jako parametr. Jeśli podciągu nie ma, zwracana jest pusta pozycja.
Przykład:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; string mysub = 'Test'; size_t pos = mystr.find(mysub); if (pos != string::npos) cout << 'First occurrence of string '< Wynik:
Pierwsze wystąpienie napisu Test: 8
Pierwsze wystąpienie napisu Help: 15

Ten program definiuje ciąg znaków jako „SoftwareTestingHelp”. Za pomocą funkcji find znajdujemy pierwsze wystąpienie ciągu „Test” w ciągu nadrzędnym. Następnie znajdujemy ciąg znaków „Pomoc”. Dane wyjściowe to pozycja wystąpienia szukanego ciągu.
Podziel ciąg
Dzielenie łańcucha za pomocą separatora lub tokenu jest przydatną operacją. W C ++, ponieważ mamy więcej niż jedną reprezentację ciągów, możemy użyć różnych podejść do podziału łańcucha. Tutaj omówimy dwa podejścia do dzielenia łańcucha.
Dzielenie std :: string Object
Najłatwiejszym sposobem podzielenia obiektu typu string jest użycie funkcji „substr” na obiekcie i podanie ogranicznika jako pozycji końcowej, aby uzyskać podłańcuch. W ten sposób możemy podzielić ciąg na separatorze, aż przejdziemy przez cały ciąg.
jak pisać przypadki testowe uat
Zobaczmy poniższy przykład, w którym najpierw znajduje pozycję separatora za pomocą funkcji „znajdź”, a następnie znajduje podłańcuch i na końcu wyprowadza każdy z tokenów.
#include #include using namespace std; int main() { string mystr = 'This_is_software_testing_help'; string delimiter = '_'; size_t pos = 0; string token; while ((pos = mystr.find(delimiter)) != std::string::npos) { token = mystr.substr(0, pos); cout << token << endl; mystr.erase(0, pos + delimiter.length()); } cout << mystr<< endl; }
Wynik:
To
jest
oprogramowanie
testowanie
Wsparcie

Jak pokazano w powyższym programie, określamy separator, który zostanie użyty do podzielenia podanego ciągu. W pętli wielokrotnie znajdujemy wystąpienie separatora za pomocą funkcji wyszukiwania i przekazujemy go do funkcji substr i pobieramy podłańcuch. Następnie każdy z uzyskanych tokenów jest wyświetlany jako wynik.
Dzielenie tablicy znaków za pomocą funkcji strtok
Innym sposobem tokenizacji ciągu (dzielenie ciągu za pomocą separatora) jest użycie funkcji „strtok”. Poniżej omówimy szczegóły funkcji „strtok”.
Prototyp funkcji: char * strtok (char str (), const char * delim)
Parametr (y): str () => Ciąg do podziału.
Delim => Separator, według którego ma zostać podzielony ciąg.
Wartość zwracana: Zwraca następny token po podzieleniu ciągu nadrzędnego.
Opis: Funkcja strtok dzieli dany ciąg na tokeny na określonych ogranicznikach. Tę funkcję należy wywołać w pętli, aby uzyskać wszystkie tokeny dla danego ciągu. Gdy nie ma już tokenów, funkcja zwraca wartość null.
Przykład:
#include #include using namespace std; int main() { char mystr() = 'This_is_software_testing_help'; char *token = strtok(mystr, '_'); while (token != NULL) { cout< Wynik:
To
jest
oprogramowanie
testowanie
Wsparcie

Zwróć uwagę, że w tym programie używamy funkcji strtok, która jako argumenty przyjmuje ciąg znaków i separator. Następnie dzieli ciąg na token na podstawie określonego separatora i wyświetla poszczególne tokeny.
Wniosek
W tym samouczku widzieliśmy niektóre z ogólnych ważnych funkcji używanych dla ciągów C ++.
Omówiliśmy funkcje odczytywania ciągu wejściowego, znajdowania ciągu, podłańcucha ciągu nadrzędnego, długości łańcucha, dzielenia ciągu itp. Wraz z ich odmianami. Te funkcje pomagają nam efektywnie odczytywać ciągi znaków i manipulować nimi.
W naszym następnym samouczku zobaczymy szczegółowo niektóre funkcje konwersji używane z ciągiem znaków C ++.
=> Odwiedź tutaj, aby zobaczyć całą serię szkoleń C ++ dla wszystkich.
rekomendowane lektury
- Funkcje łańcuchowe w Pythonie
- Ciąg w języku Java z buforem ciągów i samouczek dotyczący tworzenia ciągów
- Funkcje konwersji znaków C ++: char na int, char na string
- Funkcje ciągów VBScript: funkcje VBScript inStr, Replace, Mid i Trim
- Samouczek dotyczący dzielenia ciągów w Pythonie
- C # String Tutorial - Metody ciągów z przykładami kodu
- Funkcje Pythona
- String Array C ++: Implementacja i reprezentacja z przykładami