Класс string и функция length в языке С++

String – это класс для представления строк в языке C++. Он является изменяемым, т.е. редактирование объекта этого класса возможно без создания нового.

Объявление объекта string

Объявляются строки так же, как и другие переменные в C++. Можно задать начальное значение строки, но также можно и оставить её пустой.

Примеры инициализации строк:

string str1;

stringstr2 = “String 2”;

Оба варианта объявления, приведенные выше, допустимы в языке программирования C++. Так как string является классом, его можно создать и при помощи конструкторов. Конструкторы могут вызываться как явно (после объявления переменной строки), так и неявно (во время объявления). Существует более 15 конструкторов данного класса.

Примеры явного и неявного вызова конструкторов:

string str1;
str1 += string(5, ‘e’); // явный вызов

stringstr2(5, ‘e’); // неявный вызов

Ввод и вывод строк

Для того, чтобы ввести строку с клавиатуры нужно воспользоваться функциями cin / cout поточного вывода.

Пример ввода и вывода строк:

string str1, str2;
cin>> str1; // вводим букву s
cin>> str2; // вводим букву s
cout<< «String 1: » << str1 <<endl;
cout<< «String 2: » << str2 <<endl;

Вывод:

String 1: s
String 2: s

Также ввести строку с клавиатуры можно при помощи функции getline. Она имеет три входных параметра. Первый из них – название потока, второй — переменная типа string, а третий необязательный — разделитель, до которого считывается строка (по умолчанию это символ перевода строки “/n”).

Пример ввода при помощи getline:

string str1;
getline(cin, str1); // вводим букву a
cout<< «String 1: » << str1 <<endl;

Вывод:

String 1: a

Операции со строками

Для строк доступны следующие операторы языка программирования C++: +, <, >, <=, >=, !=, ==, =, +=.  Примеры их использования:

string str1 = «String One», str2 = «String Two»;
cout<< «Concatenation: » << (str1 + str2) <<endl;
cout<<boolalpha; // // Благодаря boolalpha в строках ниже в операциях сравнения возвращается булевое, а не целое значение
cout<< «Less: » << (str1 < str2) <<endl;
cout<< «Greater: » << (str1 > str2) <<endl;
cout<< «Less than: » << (str1 <= str2) <<endl;
cout<< «Greater than: «<< (str1 >= str2) <<endl;
cout<< «Not equal: » << (str1 != str2) <<endl;
cout<< «Equal: » << (str1 == str2) <<endl;
cout<< «Assignment: » << (str1 = «String One Two») <<endl;
cout<< «Addition assignment: «<< (str1 += » Three») <<endl;

Вывод:

Concatenation: String OneString Two
Less: true
Greater: false
Less than: true
Greater than: false
Not equal: true
Equal: false
Assignment: String One Two
Addition assignment: String One Two Three

Методы класса string

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

  • Append – добавление нескольких символов в конец строки.
  • C_str — преобразование объекта string в С-строку.
  • Clear – очистка строки.
  • Empty – проверка строки на пустоту.
  • Erase – удаление символов из строки.
  • Find — поиск заданного фрагмента в строке.
  • Find_first_of — поиск первого вхождения любого из символов заданного фрагмента.
  • find_first_not_of— поиск первого вхождения, отличающегося от символов заданного фрагмента.
  • find_last_of — поиск последнего вхождения любого из символов заданного фрагмента.
  • find_last_not_of— поиск последнего вхождения, отличающегося от символов заданного фрагмента.
  • Insert — вставка нескольких символов в середину строки.
  • Push_back — добавление одного символа в конец строки.
  • Replace — замена какого-либо фрагмента в строке.
  • Resize— изменение длины строки.
  • Rfind — “правый поиск”, определение последнего вхождения заданного фрагмента в строке.
  • Substr – возврат подстроки.

Примеры использования данных методов:

string str1 = «String One»;
cout<< «Append: » << str1.append(» Two») <<endl;
str1.clear();
cout<< «Clear: » << str1 <<endl;
cout<< «Empty: » <<boolalpha<< str1.empty() <<endl;
cout<< «Insert: » << str1.insert(0, «String One») <<endl;
cout<< «Erase: » << str1.erase(6) <<endl;
cout<< «Find: » << str1.find(«tri») <<endl;
str1.push_back(‘i’);
cout<< «Push back: » << str1 <<endl;
cout<< «Find first of: » << str1.find_first_of(«i») <<endl;
cout<< «Replace: » << str1.replace(6, 1, «s») <<endl;
str1.resize(6);
cout<< «Resize: » << str1 <<endl;
cout<< «Substr: » << str1.substr(0, 3) <<endl;

Вывод:

Append: String One Two
Clear:
Empty: true
Insert: String One
Erase: String
Find: 1
Push back: Stringi
Find first of: 3
Replace: Strings
Resize: String
Substr: Str

Нахождение длины строки

Длину строки можно найти, пройдясь в цикле по всем символам до её конца. Однако в языке C++ есть функции, которые позволяют вычислить длину строки автоматическим образом.

Методы для нахождения длины строки имеют названияlength и size. Результат их работы абсолютно идентичен. Они возвращают текущий размер строки в байтах.

Пример кода:

string str1 = «String One»;
cout<< «Length: » << str1.length() <<endl;
cout<< «Size: » << str1.size() <<endl;

Вывод:

Length: 10
Size: 10

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *