Ввод строк из нескольких слов
Строки и символы: кавычки или апострофы?
Объявление, инициализация и присвоение строк
Объявление строки происходит стандартным способом: указывается тип string и имя переменной.
string name;
string str1, str2, str3;
Обратите внимание, что, как и другие переменные, строки можно объявлять как по одной, так и сразу несколько, разделяя их запятыми.
При инициализации строки мы ее объявляем и сразу же присваиваем:
//Инициализация переменной name
string name = "Андрей";
cout << "Привет, " << name << "!\n";
Как и любую другую переменную строку можно ввести при помощи оператора cin:
string name;
cout << "Введите Ваше имя: ";
//Ввод имени
cin >> name;
cout << "Привет, " << name << "!\n";
Объявленную строку также можно присвоить стандартным способом при помощи оператора =
//Объявление строки name
string name;
//Присвоение строки name
name = "Андрей";
cout << "Привет, " << name << "!\n";
Выводить строки можно при помощи оператора cout. Подчеркнем еще раз, что для ввода и вывода строк операторами cin и cout требуется подключение библиотеки string.
Вы, наверное, уже заметили, что нами были использованы как апострофы 'H', так и кавычки "Моя строка". Причина такого различия заключается в том, что символ, заключенный в апострофы имеет тип char, а несколько символов (в частности, и один символ), заключенных в кавычки являются строкой. Получается, что 'H' – это просто символ, а "H" – уже строка. Набор символов, заключенных в кавычки, называется строковой константой, значение которой изменять нельзя. Строковую константу можно задать директивой #define:
#define GREETING "Hello, my dear friend!"
...
cout<< GREETING;
Оператор cin вводит строку до первого разделителя, которым являются переводы на новую строку, пробел, знаки табуляции и некоторые другие специальные символы. По этой причине, если введена строка из нескольких слов, то во вводимую переменную запишется только первое слово. Посмотрите на следующий пример:
string my_string;
cout << "введите строку:\n";
cin >> my_string;
cout << "Введена следующая строка:\n";
cout << my_string << endl;
Для ввода строки с пробелами следует воспользоваться функцией getline():
string my_string;
cout << "введите строку:\n";
getline(cin, my_string);
cout << "Введена следующая строка:\n";
cout << my_string << endl;
Определение длины строки – метод length()
Для определения длины строки служит метод length().
string my_string;
cout << "введите строку:\n";
getline(cin, my_string);
cout << "Длина введенной строки равна ";
cout << my_string.length() << endl;
Метод length() удобно использовать в цикле при обработке строк, например, следующая программа выводит строку наоборот:
string my_string;
cout << "Введите строку:\n";
getline(cin, my_string);
cout << "Строка наоборот:\n";
int l = my_string.length();
for (int i=str.length()-1; i>=0; i--) {
cout << my_string[i];
}
cout << endl;