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++.