Input șiruri

cin >> citește un singur cuvânt (se oprește la spațiu). Pentru a citi o linie întreagă (cu spații), folosește getline.

string_input.cpp
#include <iostream>
#include <string>
using namespace std;

int main() {
  string cuvant, linie;

  cout << "Introdu un cuvant: ";
  cin >> cuvant;          // oprire la spațiu

  cin.ignore();           // curăță newline din buffer
  cout << "Introdu o linie: ";
  getline(cin, linie);    // citește toată linia

  cout << "Cuvant: " << cuvant << endl;
  cout << "Linie: " << linie << endl;
  return 0;
}
Dacă ai citit un număr cu cin >> și apoi vrei getline, trebuie cin.ignore(); între ele. Altfel getline citește newline-ul rămas și returnează un string gol.

Căutare în string

string s = "C++ este grozav";
size_t pos = s.find("este");
if (pos != string::npos) {
  cout << "Gasit la pozitia: " << pos << endl; // 4
} else {
  cout << "Nu a fost gasit" << endl;
}