string s;
cin » s;
Также вы можете использовать определенную в файле iostream.h функцию
getline:
string s;
cin.getline(s);
Функции строкового класса различного назначения
Оставшиеся функции не совсем соответствуют предыдущим категориям. Однако они очень полезны. Одна из них уже должна быть вам знакома:
string lengthString("Какова длина этой строки?");
cout « lengthString.length() « endl;
Длина строки lengthString, оказывается, равна 25 символам.
«
Другая, не столь банальная функция — это reserve:
cout « lengthString.reserve() « endl;
Здесь возвращаемое значение будет равно 63; оно показывает действительный размер зарезервированной для lengthString памяти. Это значение зависит от конкретной реализации библиотеки и, как вы увидите дальше, в среде Borland его можно изменить.
Две последние функции из этой категории — copy и c_str — предназначены для обеспечения совместимости со строковыми библиотеками ANSI С. Функция copy копирует экземпляр строки в символьный буфер:
char charBuffer[64];
lengthString.copy(charBuffer, 13);
cout.« charBuffer « endl;
Результат выполнения операторов этого примера может выглядеть, например, таким образом:
Какова длина SDM.DLL (?)
Возвращаясь в мир С, не забудьте завершить строку нулем. За тринадцатью символами "какова длина " следуют случайные символы. Для того чтобы исправить ситуацию, добавьте следующее:
charBuffer[13] = 0;
Замечание
¦Это прекрасный пример одной из проблем строк С, которых помогает избежать строковый класс ANSI C++.