Поширені методи рядків
Свайпніть щоб показати меню
Додавання (Append)
Ми вже бачили, що додати нові символи в кінець рядка за допомогою індексації неможливо. Однак для цього існує зручний метод .append().
append.h
1str.append("added part");
Конкатенація
Інший спосіб зробити це — використати оператор +. Він виконує конкатенацію, коли застосовується до рядків.
main.cpp
12345678#include <iostream> int main() { std::string str = "Code"; str = str + "finity"; // or str += "finity" std::cout << str << std::endl; }
Також дозволяє додавати текст на початок або з обох сторін, чого не може .append().
main.cpp
12345678#include <iostream> int main() { std::string str = "finity"; str = "code" + str + ".com"; std::cout << str << std::endl; }
Вставка
Можна вставити новий текст у рядок на певну позицію за допомогою методу .insert().
insert.h
1str.insert(pos, "text to add");
Позиція, яку задає параметр pos, визначає, куди буде додано новий текст.
Новий текст вставляється перед символом, який наразі знаходиться на вказаній позиції. Цей метод корисний для динамічної модифікації рядків без створення нових.
Замінити
Можна також замінити частину рядка іншим рядком. Це можливо за допомогою методу .replace().
replace.h
1str.replace(start, n, "new text");
Тут start означає індекс першого елемента для заміни, а n — довжину частини, яку потрібно замінити.
Нижче наведено gif, який демонструє, як працює .replace().
Видалення
Можна також видалити частину рядка за допомогою методу .erase(). Це корисно, коли потрібно видалити певні символи або підрядки з рядка.
erase.h
1str.erase(start, n);
Якщо параметр n дорівнює або перевищує залишкову довжину рядка від start, усі символи від start і далі буде видалено.
Параметри start та n працюють подібно до тих, що використовуються у методі .replace(), забезпечуючи гнучкість для зміни рядка за потреби.
main.cpp
123456789101112131415161718192021#include <iostream> int main() { std::string str = "finity"; str.append(".com"); // finity to finity.com std::cout << str << std::endl; str = "in" + str; // finity.com to infinity.com std::cout << str << std::endl; str.insert(2, "de"); // infinity.com to indefinity.com std::cout << str << std::endl; str.replace(0, 2, "co"); // indefinity.com to codefinity.com std::cout << str << std::endl; str.erase(10, 4); // codefinity.com to codefinity std::cout << str << std::endl; }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат