Работа со строками

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

В С++ существует 2 типа строк:

  1. массив переменных типа char, заканчивающийся нуль-терминатором \0.

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

char string[10]; // string – имя строковой переменной, 10 – размер массива, (в строке может поместиться 9 символов, последнее место отводится под нуль-терминатор)

  1. специальный класс 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()

возвращает число элементов в строке.

 

Лабораторная работа №15