# 13 CHARY I STRINGI # Zmienne typu char(acter) W C++ mamy do dyspozycji typ dla zmiennych znakowych. W zmiennych tych mogą być trzymane wartości z zakresu **[−128,127]** . Funkcje wyjścia/wejścia interpretują odpowiednio typ znakowy, wypisując zamiast znajdującej się w zmiennej liczbę, odpowiadający tej liczbie znak z tabeli ASCII. Znak a liczba Skoro wiemy, że znaki to tak naprawdę liczby, nie musimy pamiętać wartości tablicy ASCII. W kodzie znak traktowany jest po prostu jak liczba typu char. Przykład: **‘!’ + ‘$’ == 33 + 36 == 69 == ‘E’** # Sprawdzanie wielkości litery ![image](https://hackmd.io/_uploads/r1viPpPB6.png) Zamiana cyfry na liczbę ![image](https://hackmd.io/_uploads/SyWJuTvHa.png) # Struktura string jest bardzo pomocna w operowaniu napisami. Deklarowanie, wczytywanie i wypisywanie tekstu **string napis;** // w tym miejscu deklarujemy zmienną i mówimy że w zmiennej napis będziemy przechowywać tekst **cin>>napis**; // wczytujemy tekst z klawiatury i zostaje on zapisany pod zmienną napis **cout<<napis**; // komputer wypisze tekst, który został zapisany pod zmienną napis Jeżeli chcemy wypisać konkretny napis wówczas wpisujemy tekst między znakami “ “ np. ```cpp= cout<<”To jest tekst do wypisania na ekran”; ``` **string a;** //deklaracja zmienej **a = "Gosia";** //w tym miejscu podstawiamy pod zmienną a słowo Gosia **cout<<a;** // komputer wypisze nam wartość zmiennej, czyli słowo Gosia **Długość stringu** możemy sprawdzić za pomocą funkcji size() np: ```cpp= s string; int dlugosc; cin>>s; dlugosc=s.size(); cout<<dlugosc; ``` **Pamiętajcie**, że string to taka tablica znaków np: ```cpp= string s; cin>>s; for (int i=0; i<s.size(); i++) cout<<s[i]<<"\n"; ``` Jeżeli wczytamy jako s wyraz TEKST, to program wypisze nam T E K S T Gdzie s[0] to T, s[1] to E, s[2] to K, s[3] to S, s[4] to T a s.size() jest równy w tym przypadku 5