# 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

Zamiana cyfry na liczbę

# 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