Вторник, 09.12.2025 21:23

Работа со строками в C++

Работа со строками в C++

Во время разработки ПО вам очень часто придется сталкиваться с работой со строками. 

Строки  используются практически в каждой программе, как правило для хранения выводимых сообщений.

Работа с ними в C++ имеет ряд особенностей. Сегодня мы рассмотрим работу со строками в C++.

Объявление переменной

В стандартном C++ для работы со строками существует тип std::string.

Вы можете сразу присвоить значение строке:

std::string s = "ABCD";

Вывод содержимого строки

Вывести строку на экран мы можем двумя способами:

- С помощью std::cout

- C помощью printf

Вывод строки с помощью cout

Для вывода строк удобно использовать функционал std::cout

#include <iostream>
#include <string>
std::string s = "ABCD";
std::cout << s;

Результат:

ABCD

Вывод строки с помощью printf

Для вывода строк можно использовать printf, но при этом существует особенность при работе с std::string при использовании этой функции!

Рассмотрим код:

#include <iostream>
#include <string>

std::string s = "ABCD";

printf("\n%s\n", s);

Результатом будет случайный набор символов, разный при каждом запуске программы!

Дело в том, что printf ожидает строку в формате строки С:

const char *

Обновим код:

#include <iostream>
#include <string>

std::string s = "ABCD";

printf("\n%s\n", s.c_str());

Запустим:

ABCD

Всё работает.

Доступ к элементам строки

std::string позволяет получить доступ к отдельным элементам строки. Для этого достаточно обратиться к ней как массиву.

Рассмотрим код:

#include <iostream>
#include <string>

std::string s = "ABCD";

std::cout << s[0];
std::cout << s[3];

Запустим:

AD

Добавление символов к строке

Для добавления символа или строки можно воспользоваться методом - append()

Рассмотрим код:

#include <iostream>
#include <string>

std::string s = "ABCD";

s.append("E");

std::cout << s;

Результат:

ABCDE

Так же для добавления символов вы можете использовать оператор +

Рассмотрим код:

#include <iostream>
#include <string>

std::string s = "ABCD";

s = s + "E";
s += "F";

std::cout << s;

Результат:

ABCDEF

Вы так же можете добавить символ с помощью метода push_back()

Рассмотрим код:

#include <iostream>
#include <string>

std::string s = "ABCD";

s.push_back('E');

std::cout << s;

Результат:

ABCDE

Удаление символов из строки

Существуют разные способы удалить символы из строки. Мы рассмотрим некоторые из них.

Удаление символа из конца строки

Самым простым способом это сделать - использовать соответствующие методы std::string

Рассмотрим код:

#include <iostream>
#include <string>

std::string s = "ABCDEFGH";

s.erase(6); //Удаляем все буквы с 6 буквы включительно, Удаляются GH

s.erase(1, 1); //Удаляем букву B

std::cout << s;

Запустим:

ACDEF

Если вам нужно удалить символы с конца строки вы можете использовать метод pop_back()

Рассмотрим код:

#include <iostream>
#include <string>

std::string s = "ABCDEFGH";

s.pop_back();

std::cout << s;

Запустим:

ABCDEFG

Замена подстроки в строке

Удалить символы из строки можно с помощь замены их на пустую строку.

Для замены подстроки в std::string используется метод std::regex_replace()

Рассмотрим код:

#include <iostream>
#include <string>
#include <regex>

s = "ABCDEFGH";

s = std::regex_replace(s, std::regex("BCD"), "");

std::cout << s;

Запустим:

BCDEFG

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

Для извлечения подстроки из std::string воспользуемся методом std::substr()

Рассмотрим код:

#include <iostream>
#include <string>

std::string s = "ABCDEFGH";

s.substr(1,6);

std::cout << s;

Запустим:

BCDEFG

Получение размера строки

Чтобы получить количество символов в строке достаточно использовать метод length()

Рассмотрим код:

#include <iostream>
#include <string>
std::string s = "ABCDEFGH";
std::cout << s.length();

 Запустим:

8

Заключение

Сегодня мы рассмотрели работу со строками в C++:

Рассмотрели вывод строк на экран с помощью std::cout и printf;

Рассмотрели доступ к элементам строки;

Добавили элементы к строке;

Рассмотрели добавление, удаление и замену элементов строки;

Получили длину строки.

Категория C++
Теги Cpp

Добавить комментарий

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
Просмотров: 46