Co to jest ciąg?
Ciąg to sekwencja znaków. Łańcuch w C ++ jest obiektem klasy std :: string. Znaki są zapisanymi sekwencjami bajtów z dozwolonym dostępem do jednego bajtu znaku.
Ciągi C ++ przydzielają pamięć dynamicznie. W razie potrzeby do ciągu można przydzielić więcej pamięci w czasie wykonywania. Ponieważ nie ma wstępnej alokacji pamięci, nie ma jej marnotrawstwa. Na ciągach możemy wykonywać różne operacje, w tym porównania, konkatenację, konwersję itp.
W tym samouczku C ++ nauczysz się:
- Co to jest ciąg?
- Deklarowanie ciągów
- Ciąg znaków w stylu C.
- std :: string
- Dostęp do wartości ciągu
- Funkcje ciągów:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Przykład:
Deklarowanie ciągów
C ++ obsługuje dwa typy deklaracji ciągów:
- Ciąg znaków w stylu C.
- Typ klasy łańcuchowej
Ciąg znaków w stylu C.
Ten typ deklaracji string został wprowadzony w języku programowania C. C ++ nadal to obsługuje. Jest to po prostu jednowymiarowa tablica znaków zakończona znakiem null (\ 0). Ciąg zakończony wartością null zawiera znaki, które tworzą ciąg, a po nich następuje wartość null.
Rozważmy deklarację ciągu podaną poniżej:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Powyższa deklaracja tworzy ciąg, który tworzy słowo John. Słowo ma 4 znaki, ale łańcuch ma rozmiar 5. Dodatkowa spacja pozwala na przechowywanie znaku null.
Korzystając z reguły inicjalizacji tablicy, możemy napisać powyższą instrukcję w następujący sposób:
char name[] = "John";
Zauważ, że nie musisz umieszczać znaku null na końcu stałej łańcuchowej. Kompilator C ++ automatycznie umieści znak „\ 0” na końcu ciągu podczas inicjowania tablicy.
std :: string
Standardowa biblioteka C ++ udostępnia klasę ciągów, która obsługuje różne operacje na łańcuchach. Jest zapisywany jako std :: string.
Aby użyć tej klasy, musimy najpierw dołączyć ją do naszego obszaru roboczego za pomocą preprocesora #include, jak pokazano poniżej:
#include
Następnie możemy zadeklarować nasz ciąg za pomocą słowa kluczowego string. Na przykład:
string name = "John";
Powyższa instrukcja utworzy ciąg o nazwie nazwa, który będzie zawierał wartość John.
Dostęp do wartości ciągu
W C ++ możemy uzyskać dostęp do wartości ciągu za pomocą nazwy ciągu. Na przykład:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
- Zadeklarowanie ciągu znaków i nadanie mu nazwy. Ciąg będzie przechowywać wartość John. Dodatkowa przestrzeń będzie przechowywać znak null.
- Drukowanie tekstu na konsoli.
- Drukowanie wartości ciągu o nazwie nazwa na konsoli.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
Oto kolejny przykład użycia standardowej klasy ciągów C ++:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Dołączanie standardowej klasy ciągów do naszego kodu.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
- Zadeklarowanie łańcucha i nadanie mu nazwy. Ciąg będzie przechowywać wartość Guru99.
- Drukowanie wartości nazwy ciągu obok tekstu na konsoli.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
Funkcje ciągów:
Często będziesz chciał manipulować strunami. C ++ udostępnia szeroką gamę funkcji, których możesz w tym celu użyć. Funkcje te są zdefiniowane w klasie CString, stąd aby móc z nich korzystać, musimy uwzględnić je w naszym kodzie. Omówmy kilka:
strcpy ()
To jest funkcja kopiowania napisów. Kopiuje jeden ciąg na inny.
Składnia:
strcpy(string1, string2);
Dwa parametry funkcji, ciąg1 i ciąg2, to ciągi. Funkcja skopiuje ciąg ciąg1 do ciągu 1.
strcat ()
To jest funkcja konkatenacji ciągów. Łączy ciągi.
Składnia:
strcat(string1, string2);
Dwa parametry funkcji, ciąg1 i ciąg2, to ciągi do łączenia. Powyższa funkcja połączy łańcuch string2 na końcu łańcucha string1.
strlen ()
To jest funkcja długości łańcucha. Zwraca długość ciągu przekazanego do niego jako argument.
Składnia:
strnlen(string1)
Parametr ciąg1 jest nazwą łańcucha, którego długość ma zostać określona. Powyższa funkcja zwróci długość łańcucha string1.
strcmp ()
To jest funkcja porównywania ciągów. Służy do porównywania ciągów.
Składnia:
strcmp(string1, string2);
Powyższa funkcja zwróci 0, jeśli łańcuchy ciąg1 i ciąg2 są podobne, mniej niż 0, jeśli ciąg1
Przykład:
Poniższy przykład demonstruje, jak używać powyższych funkcji ciągów:
#include#include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}
Wynik:
Oto zrzut ekranu kodu:
Objaśnienie kodu:
- Dołączanie pliku nagłówkowego iostream do naszego kodu. Pozwoli nam to czytać i zapisywać na konsoli.
- Dołączanie standardowej klasy CString do naszego kodu.
- Włączanie przestrzeni nazw std, aby używać jej klas i funkcji bez wywoływania jej.
- Wywołanie funkcji main (), wewnątrz której należy dodać logikę programu. {Oznacza początek treści funkcji main ().
- Zadeklarowanie ciągu 10 znaków i nadanie mu nazwy name1. Ciąg będzie przechowywać wartość Guru99.
- Zadeklarowanie ciągu 10 znaków i nadanie mu nazwy nazwa 2. Ciąg będzie przechowywać wartość John.
- Zadeklarowanie ciągu 10 znaków i nadanie mu nazwy nazwa 3.
- Deklarowanie zmiennej całkowitej o nazwie len.
- Kopiowanie ciągu nazwa1 do ciągu nazwa3.
- Drukowanie wartości ciągu name1 obok tekstu na konsoli. Powinien wydrukować Guru99.
- Łączenie ciągów nazwa2 na końcu łańcucha nazwa1. Wartość name1 to teraz Guru99John.
- Drukowanie wartości ciągu name1 obok tekstu na konsoli. Powinien wydrukować Guru99John
- Określenie długości łańcucha o nazwie name1 i przypisanie wartości length do zmiennej len.
- Wydruk wartości zmiennej len obok innego tekstu na konsoli.
- Funkcja main () powinna zwrócić wartość, jeśli program działa poprawnie.
- Koniec treści funkcji main ().
Podsumowanie
- Ciąg to sekwencja znaków.
- Ciągi należą do standardowej klasy ciągów w C ++.
- Możemy zadeklarować łańcuchy przy użyciu ciągu znaków w stylu C lub standardowej klasy string.
- Funkcja strcpy () kopiuje jeden łańcuch do drugiego.
- Funkcja strcat () łączy dwie funkcje.
- Funkcja strlen () zwraca długość funkcji.
- Funkcja strcmp () porównuje dwa łańcuchy.