Работа со строками в 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;
Рассмотрели доступ к элементам строки;
Добавили элементы к строке;
Рассмотрели добавление, удаление и замену элементов строки;
Получили длину строки.
Добавить комментарий