Możesz użyć funkcji basic_string::substr:
string text{"Ala ma uroczego kotka."};
cout << text.substr(7, 8) << '\n'; // wyświetli "uroczego"
Pierwszym argumentem funkcji jest pozycja, od której zaczynamy brać znaki, a drugi określa ilość znaków. Minusem tego rozwiązania jest to, że funkcja tworzy nowy obiekt typu std::string, więc lepszym (ale mniej intuicyjnym) rozwiązaniem będzie to:
string text{"Ala ma uroczego kotka."};
copy_n(text.begin() + 7, 8, ostream_iterator<char>{cout}); // wyświetli "uroczego"
Widzimy tutaj wywołanie funkcji std::copy_n z następującymi argumentami:
- Iterator do znaku, od którego zaczynamy wypisywanie,
- Ilość znaków do wypisania,
- Iterator wyjścia na strumień (tu na std::cout).