Извлечение подстрок

C++:
Извлечение подстрок

Как это делать:

C++ облегчает задачу извлечения подстрок. std::string здесь наш надежный помощник, с функцией substr(), которая выполняет большую часть работы. Давайте перейдем непосредственно к коду:

#include <iostream>
#include <string>

int main() {
    std::string fullString = "Hello, World! Programming in C++ is fun.";
    std::string snippet;

    // Извлекаем "World", начиная с индекса 7 и длиной 5
    snippet = fullString.substr(7, 5);
    std::cout << snippet << std::endl; // Вывод: World

    // Извлекаем "Programming", начиная с индекса 14
    snippet = fullString.substr(14);
    std::cout << snippet << std::endl; // Вывод: Programming in C++ is fun.

    return 0;
}

Подробнее

Подстроки - это не новинка. Программисты на языке С использовали strncpy и вели ручной учет. Обработка строк - это распространенный источник ошибок, поэтому C++ стремился это упростить. std::string и его метод substr существуют с C++98 и с тех пор облегчают жизнь.

Альтернативы? Конечно. Можно пойти более сложным путем с std::string::iterator или вернуться к функциям языка C, если вам нравятся риски. Более современный подход может включать string_views для неизменяющего просмотра.

Реализация? Под капотом substr часто выделяет новое хранилище и копирует данные, что не бесплатно. Это легче, чем возиться с сырыми указателями и массивами символов добрых старых времен, но это не мгновенно.

Смотрите также

Для получения дополнительной информации о std::string и его друзьях: