Работа со строками
Строки в С++ позволяют работать с символьными данными. С помощью строк возможно осуществить чтение с клавиатуры текста, его обработка и вывод.
В С++ существует 2 типа строк:
- массив переменных типа char, заканчивающийся нуль-терминатором \0.
Символьные строки состоят из набора символьных констант заключённых в двойные кавычки. При объявлении строкового массива необходимо учитывать наличие в конце строки нуль-терминатора, и отводить дополнительный байт под него.
char string[10]; // string – имя строковой переменной, 10 – размер массива, (в строке может поместиться 9 символов, последнее место отводится под нуль-терминатор)
- специальный класс string
Для его работы необходимо в начале программы подключить заголовочный файл string: #include <string>
Для создания строки необходимо в начале программы написать
using namespace std;
Теперь чтоб создать строку достаточно написать: string s;
Для записи в строку можно использовать оператор =
s="Hello";
Доступ к i-му элементу строки s типа string осуществляется стандартным образом s[i]. Над строками типа string определены следующие операции:
- присваивания, например s1=s2;
- объединения строк (s1+=s2 или s1=s1+s2) — добавляет к строке s1 строку s2, результат храниться в строке s1, пример объединения строк:
- сравнения строк: s1=s2, s1!=s2, s1<s2, s1>s2, s1<=s2, s1>=s2 — результатом будет логическое значение;
Существует множество функций для работы со строками (Таблица 10).
Таблица 10
Функции для работы со строками
Функция |
Объяснение |
s.append(str) |
добавляет в конец строки строку str |
s.assign(str) |
присваивает строке s значение строки str |
s.clear() |
отчищает строку, т.е. удаляет все элементы в ней |
s.compare(str)
|
сравнивает строку s со строкой str и возвращает 0 в случае совпадение |
s.copy(C, I, N)
|
копирует из строки s в строку C(может быть как строка типа string, так и строка типа char) I символов, начиная с N-го символа |
bool b=s.empty() |
если строка пуста, возвращает true, иначе false |
s.erase(I,N) |
удаляет N элементов с I-го символа |
s.find(str,I) |
ищет строку str начиная с I- го символа |
s.insert(pos, s1) |
вставляет строку s1 в строку s, начиная с позиции pos |
int len=s.length() |
записывает в len длину строки |
s.push_back(symbol) |
добавляет в конец строки символ |
s.replace(index, n,str)
|
берет n первых символов из str и заменяет символы строки s на них, начиная с позиции index |
str=s.substr(n,m) |
возвращает m символов начиная с позиции n |
s.swap(str) |
меняет содержимое s и str местами. |
s.size() |
возвращает число элементов в строке. |