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);
cin.getline (prezime,sizeof(prezime));

Č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";
s = ch; s = cp;

Niz znakova, stringovna varijabla ili znakovno polje može se dodijeliti kao vrijednost stringovnoj varijabli.

Jedan znak

s[1] = 'c';
c = s[1];

Mijenja string s u "acc def abc"
Postavlja  c na vrijednost 'b'. 

Dužina

i = s.length();
i = s.size();

Varijabla i poprima vrijednost dužine stringa s

Prazan?

if(s.empty()) i++;
if(s == "") 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";
s2 += "x";

Dodaju x na kraj stringa s2

Podstring

s = s2.substr(1,4);
s = s2.substr(1,50);

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);
s.erase(4);

Odstranjije 5 znakova počevši od pozicije 4 stringa s. Nova vrijednost s je "abc bc".
Odstranjuje od pozicije 4 do kraja stringa. Nova vrijednost je "abc ".

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);
if(s.rfind("ab",4) != string::npos)
   cout << "Da" << endl;

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.

Vektor – slijedni niz podataka istog imena i zajedničkog tipa, a pristupamo im po indeksima.
Za korištenje vektora u C++-u potrebno je:   #include <vector>
Osobine
•    Vektor je objekt koji sadrži niz objekata iste veličine
•    Elementi počinju s indeksom 0. Elementima se pristupa v[0], v[1], v[2], ...
Zadnji je v[v.size()-1] a ne v[v.size()].
•    Novi element može se postaviti na kraj "push"
•    Zadnji element može se uzeti s vektora "pop"
•    Vektor može mijenjati veličinu (velicina= v.size() )
•    Vektor može biti prazan  - v.empty() je true.
 vector <int> v;   int broj;    int elemenata;  
 cout <<"elemenata? ";    cin >>elemenata;   
for (int i=0;i<elemenata;i++)  //može i while petlja    {        cout <<"Molim broj";      cin>>broj;       v.push_back(broj);   //može i v[i]=broj;     }     int sum=0;    
   sort (v.begin(), v.end());   
for(int i=v.size()-1; i>=0; i--) cout <<v[i]<< " ";
for(int i=0; i<v.size(); i++) cout << v[i] << " “;
cout << "Ima " << count (v.begin(), v.end(), 5)<< " petica!" << endl;   
cout << "Najmanji:"<< *min_element (v.begin(), v.end());
cout << "Najveći:"<< *max_element (v.begin(), v.end());
}

Funkcija koja dodaje riječi u vektor:

void dodaj_rijec(vector<string> &vs, string s)
// funkcija mijenja vektor                 
 // poziv po referenci void dodaj (vector <string> &vs, string s)
{
       bool ima=false;
      for (int j=0; j<vs.size(); j++) if (s==vs[j]) ima=true;
       if (ima==false)vs.push_back(s);
 }

string s;
    vector <string> v;
    getline(cin, s);
    v.push_back(s);
    for (int i=0; i<10; i++)
    {
       getline(cin, s);
        dodaj (v, s);
     }
     for (int i=0; i<v.size(); i++)cout<<v[i]<<" ";