Łańcuchem nazywamy ciąg znaków zakończony znakiem końca tekstu '\0'.
W języku C++ łańuchy można zapisywać w tablicach znaków (char) lub obiektach klasy string.
Deklarując tabliicę nalezy podać jej rozmiar (rozmiar musi byc większy niż liczba znaków - ostatni znak '\0'). Przy inicjowaniu można rozmiar tablicy pominąć.
W języku C++ łańcuchy znaków można wczytywać z klawiatury poleceniem cin>>, jednak wtedy tekst wczytywany jest do białego znaku(spacja, tabulator, enter). Wprowdzenie tektu ze spacjami możliwe jest za pomocą funkcji getline().
Wyświetlanie łańucha odbywa się poprzez przekazanie nazwy do strumienia cout<<.
Przykłady:
char t1[ ]="tekst";
char t2=[10 ];
cin>>t2;
cout<<"wczytano: "<<t2;
char t3[50];
cin.getline(t3,50);
cout<<"wczytano: "<<t3;
Wybrane funkcje:
strlen(t) -- zwraca liczbę znaków w łańcuchu t
strcpy(t1,t2) - kopiuje t2 do t1
strncpy(t1,t2,n) - kopiuje n-znaków z t1 do t2
strcat(t1,t2) - dołącza t2 do t1
Klasa string, umieszczona jest w przestrzeni nazw std::. Nazwa string stanowi typ zmiennej. Dekalrując zmienną podajemy typ i nazwę. Pobieranie z klawiatury za pomocą cin>> lub getline(). Wypisywanie: cout<<.
Można wykorzystywać operatory: [ ]- indeks, + - łączenie, == - porównanie.
Przykłady:
string s1="napis";
string s2,s3;
cin>>s2;
getline(cin,s3);
cout<<s1;
Wybrane metody:
s.length(), s.size() - zwracają długość łańcucha
s.find(z) - zwraca indeks znaku z w łańcuchu s (lub -1)
s.substr(k,n) - zwraca podłańcuch długości n -znaków zaczynając od pozycji k
s.clear() - usuwa znaki z łańcucha
s.empty - zwraca true, gdy łańcuch jest pusty
s.insert(k,s2) -wstawia łańcuch s2 od pozycji k
s.replace(k,l,s2) - zastępuje l-znaków w s łańcuchem s2, zaczynając od pozycji k
s.erase(k,l) - usuwa l-znaków, zaczynając od pozycji k
s.swap(s2) - zamienia s i s2
Konwersje łańcuchów i typów liczbowych
int(z) -zwraca kod ASCII znaku z
char(i) - zwraca znak o kodzie i
atoi(tab) - konwertuje tab-tablicę znaków typu char na liczbę typu int
stoi(s) - konwertuje łańcuch s na liczbę całkowitą (int)
stoi(s,0,2) - konwertuje łańcuch s z systemu binarnego na dziesiętny
stof(s) - konwertuje łańcuch na ułamek dziesiętny (float)
to_string(liczba) - konwertuje liczbę na łańcuch typu string
strcpy(s2, s1.c_str()) - konwertuje łańcuch s1-typu string na tablicę znaków s2 -typu char
s2=s1 - konwertuje s1-tablicę znaków char na s2 -łańcuch znaków typu string