Данные · Контейнеры и алгоритмы

Строки

std::string и std::string_view: текст без боли

~30 мин 7 шагов

После урока ты сможешь

  • Искать, вырезать и склеивать строки
  • Принимать строки в функции через std::string_view
  • Разбивать строку на слова

Шаг 1 из 7

Строка — это контейнер символов

std::string во многом похож на std::vector<char>: у него есть size(), индексы, push_back и цикл по символам. Плюс много операций, специфичных для текста.

main.cpp
#include <print>
#include <string>
​
int main() {
    std::string lang = "C++";
    lang += "23";                 // склейка
    std::println("{} — {} символов", lang, lang.size());
    std::println("первый: {}, последний: {}", lang.front(), lang.back());
​
    const std::string greeting = "Hello, " + lang + "!";
    std::println("{}", greeting);
    std::println("{}", lang == "C++23");   // сравнение по содержимому
}

Строки сравниваются через ==, !=, <: по содержимому, посимвольно, в словарном порядке. Склеивать можно + и +=.

Проверь себя

Что выведет программа?

main.cpp
#include <print>
#include <string>
​
int main() {
    std::string s = "C++";
    s += "23";
    std::println("{} {}", s, s.size());
}
Enter — проверить, Shift+Enter — новая строка