3. Typ napisowy

W języku C++ nie ma wbudowanego standardowego typu do przechowywania napisów (czyli zmiennych łańcuchowych). W praktyce często istnieje potrzeba operowania na tego typu danych. W języku C do operowania na łańcuchach znaków wykorzystywane były tablice. W języku C++ wykorzystywana jest w tym celu biblioteka string. Zmienna typu string jest często używana do przechowywania i manipulowania tekstami, takimi jak nazwy, zdania, adresy email czy informacje pobrane ze strumieni wejścia. Aby korzystać ze zmiennych typu string, należy dodać nagłówek <string> do kodu źródłowego programu. 

Umowny typ string w języku C++ (ale nie w C) określa napis (inaczej: łańcuch, tekst), czyli dowolny ciąg znaków ujęty w cudzysłowy.
Zmienna typu string oferuje wiele przydatnych funkcji i metod do manipulacji tekstem, takich jak dodawanie, usuwanie, porównywanie, przeszukiwanie itp. Jest to potężne narzędzie przy tworzeniu aplikacji, które wymagają pracy z tekstem. 
Przykład definicji zmiennej string:

string napis; 
Przy pomocy zmiennej typu string możliwe jest wykonywanie podstawowych operacje na łańcuch znaków. Do poszczególnych znaków odwołujemy się za pomocą indeksów. Analogicznie jak do tablicy znaków. Tablice zostaną omówione w dalszej części podręcznika. Dodatkowo po kropce umieszczonej za nazwą zmiennej mamy dostęp do szeregu operacji, które możemy wykonać. Możemy np. pobrać rozmiar zmiennej, a więc liczbę znaków. Do tego służy operacja size() , która zwraca liczbę całkowitą będącą liczbą znaków. 
Jeżeli więc np.  zdefiniujemy  imie  jako zmienną typu string, a następnie wczytamy ten napis, to imie.size() oznacza długość (Iiczbę znaków) wczytanego napisu.
Dodatkowo możliwe jest dodawanie zmiennych typu string.
Wynikiem wyrażenia "zadanie1" + ".cpp" jest napis "zadanie1.cpp".
Inną operacją, którą będziemy wykorzystywać jest porównywanie zmiennych  typu string.
Ze względu na uporządkowanie znaków w kodzie ASCII obowiązuje reguła, którą najłatwiej podać na przykładzie: "Jan" < "Janina" oraz "Jan" < "jan". To pozwala na sortowanie napisów w taki sam sposób, jak to się robi z liczbami - przynajmniej dla języka angielskiego.