C++ Standard Template Library (STL) sadrži klasu string koja se koristi za operacije s nizom znakova. Morate koristi, odnosno uključiti:
#include <string>
Primjeri deklaracije i inicijalnih vrijednosti:
string s = "abc def abc";
string s2 = "abcde uvwxyz";
char c;
char prezime[30];
char ch[] = "aba daba do";
char *cp = ch;
unsigned int i;
Ulaz - stream |
cin >> s; |
Pohranjuje učitanu vrijednost u s. Staje kod razmaka! |
Izlaz - stream |
cout << s; |
Ispisuje string na izlazni stream. |
Ulaz (redak) |
getline(cin, s); |
Čita do slijedeće oznake za novi red, te postavlja rezultat u varijablu. |
|
gets(s) |
Učita skup znakova do ENTER. |
Dodjela |
s = s2;s = "abc"; |
Niz znakova, stringovna varijabla ili znakovno polje može se dodijeliti kao vrijednost stringovnoj varijabli. |
Jedan znak |
s[1] = 'c'; |
Mijenja string s u "acc def abc" |
Dužina |
i = s.length(); |
Varijabla i poprima vrijednost dužine stringa s |
Prazan? |
if(s.empty()) i++; |
Dodaje 1 varijabli i ako string s nije prazan |
Relacijski operatori |
if (s < s2) i++; |
Koristi ASCII kod da odredi koji je string „manji“. Ovdje je vrijednost uvjeta istina zbog razmaka prije d |
Zbrajanje stringova |
s2 = s2 + "x"; |
Dodaju x na kraj stringa s2 |
Podstring |
s = s2.substr(1,4); |
Prvi primjer počinje na poziciji 1 stringa s2 i uzima 4 znaka pa je s = "bcde". Drugi: s= "bcde uvwxyz". Ako je dužina (ovdje 50) veća uzima se ostatak stringa. Prvi indeks je 0 kao i indeks polja! |
Zamjena podstringa |
s.replace(4,3,"x"); |
Zamijeni 3 znaka u s počevši od mjesta 4 znakom x. Varijabla s = "abc x abc". |
Odstraniti podstring |
s.erase(4,5); |
Odstranjije 5 znakova počevši od pozicije 4 stringa s. Nova vrijednost s je "abc bc". |
Znakovno polje u string |
s = ch; |
Konvertira znakovno polje ch u string s. |
String u znakovno polje |
cp = s.c_str(); |
Pokazivač cp pokazuje na znakovno polje s istim znakovima kao i string s. |
Traženje |
i = s.find("ab",4); |
Prvi primjer vraća poziciju podstringa "ab" počevši na poziciji 4, pa je i=8. Find i rfind funkcije vraćaju int string::npos ako podstring nije pronađen. Drugi primjer traži zdesna počevši na 4. poziciji. Pošto je pronađen string ispisuje se Da. |