В чем заключается вопрос: Разобраться как работать со строками с C++.
Сложность : легкая .
Строки в с++ позволяют нам работать с символьными данными. Благодаря ним мы можем читать с клавиатуры текст, как-то его обрабатывать и затем, например, снова его выводить в консоль.
В С++ существует 2 типа строк.
Первый из них — это массив переменных типа char.
Если кто не помнит, то переменная типа char хранит в себе 1 символ. Размер такой строки равняется размеру массива — 1, т.к. последний элемент содержит NULL (пустая переменная без значения), который обозначает символ конца строки.
Пример :
char str[50]; cin >> str ; cout << str << endl;
Ну то есть тут мы объявили строку с названием str, а её максимальная длинна 50 символов.
Второй из вариантов, более удобный — это специальный класс string
Для его работы необходимо в начале программы подключить заголовочный файл string:
#include <string>
Для создания строки вам необходимо в начале программы написать using namespace std;
Пример :
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cin >> str ;
cout << str << endl;
}
Примерно тоже самое, но у 2 способа есть свои плюсы, не надо вводить размер и есть функции для работы :
Список функций :
string s ;
string str;
1)s.append(str) - добавляет в конец строки строку str. Можно писать как s.append(переменная),так и s.append("строка");
2)s.assign(str) - присваивает строке s значение строки str. Аналогично записи s=str;
3)int i=s.begin() - записывает в i индекс первого элемента строки
4)int i=s.end() - аналогично, но последнего
5)s.clear() - как следует из названия, очищает строку. Т.е. удаляет все элементы в ней
6)s.compare(str) -сравнивает строку s со строкой str и возвращает 0 в случае совпадение (на самом деле сравнивает коды символов и возвращает из разность)
7)s.copy(куда, сколько, начиная с какого) - копирует из строки s в куда (там может быть как строка типа string, так и строка типа char). Последние 2 параметра не обязательные (можно использовать функцию с 1,2 или 3 параметрами)
8)bool b=s.empty() - если строка пуста, возвращает true, иначе false
9)s.erase(откуда, сколько) удаляет n элементов с заданной позиции
10)s.find(str,позиция) - ищет строку str начиная с заданной позиции
11)s.insert(позиция,str, начиная, beg, count) - вставляет в строку s начиная с заданной позиции часть строки str начиная с позиции beg и вставляя count символов
12)int len=s.length() - записывает в len длину строки
13)s.push_back(symbol) - добавляет в конец строки символ
14)s.replace(index, n,str) - берет n первых символов из str и заменяет символы строки s на них, начиная с позиции index
15)str=s.substr(n,m) - возвращает m символов начиная с позиции n
16)s.swap(str) меняет содержимое s и str местами.
17)s.size() - возвращает число элементов в строке.
Вот это большинство функции для работы со строками, их мы и будем использовать в наших задачах.
