Форум программистов, компьютерный форум CyberForum.ru

В переменную типа string записывается только первое слово строки - C++

Восстановить пароль Регистрация
 
kindlyforever
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 6
13.03.2010, 15:20     В переменную типа string записывается только первое слово строки #1
Как вписывать предложения в тип string (если возможно)? То есть скажем после
C++
1
2
3
string randomstr;
cin >> randomstr; // вводим например "Hello cruel world"
cout << randomstr;
на экран высветиться только Hello. Возможно ли заносить предложение целиком?
и ещё, я знаю что по правилам задавать можно только один вопрос, но тема совсем смежная: при куске кода
C++
1
2
3
4
5
6
vector<string> vect1;
string lulz;
while(cin >> lulz) // вводим "Moderator's gonna ban me for sure"
{
vect1.push_back(lulz);
}
в вектор занесутся 6 слов с разными индексами. Как это выходит?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
13.03.2010, 15:25     В переменную типа string записывается только первое слово строки #2
C++
1
2
3
string randomstr;
cin >> randomstr; // вводим например "Hello cruel world", а реально записывается только "Hello"
cout << randomstr;
Для типа string нужно делать вот так:
C++
1
2
3
string randomstr;
getline(cin, randomstr);
cout << randomstr;
А для char*
C++
1
2
3
char str[50];
cin.getline(str, 50);
cout << str;
hx
3 / 10 / 0
Регистрация: 03.03.2010
Сообщений: 71
13.03.2010, 16:44     В переменную типа string записывается только первое слово строки #3
kindlyforever, как правило в c++ (и в c) используют char[], а не string, большинство функций предназначено для него.

Тогда возможно:
C++
1
2
3
char[] randomstr;
cin >> randomstr;
cout << randomstr;
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
13.03.2010, 17:43     В переменную типа string записывается только первое слово строки #4
Цитата Сообщение от hx Посмотреть сообщение
как правило в c++ используют char[], а не string
ИМХО, Совершенно неверный подход к идеологии Си++.
hx
3 / 10 / 0
Регистрация: 03.03.2010
Сообщений: 71
13.03.2010, 18:02     В переменную типа string записывается только первое слово строки #5
fasked, возможно, тем не менее в большинстве кода, который я видел, сделано именно так. и
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.03.2010, 18:09     В переменную типа string записывается только первое слово строки #6
Цитата Сообщение от hx Посмотреть сообщение
fasked, возможно, тем не менее в большинстве кода, который я видел, сделано именно так.
Думаю код относился в основном к учебным программам. Без особой необходимости никто не станет возиться со строками в стиле Си - уж очень это неудобно.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
13.03.2010, 23:54     В переменную типа string записывается только первое слово строки #7
оператор cin записывает в переменную все до последнего пробела,для этого нужно написать
C++
1
2
string s;
getline(cin,s);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2010, 00:49     В переменную типа string записывается только первое слово строки
Еще ссылки по теме:

C++ Как записать длину строки типа string в переменную
C++ Вставить один символ в переменную типа string
C++ Азбука Морзе, кодируется только первое слово строки

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
14.03.2010, 00:49     В переменную типа string записывается только первое слово строки #8
Цитата Сообщение от hx Посмотреть сообщение
fasked, возможно, тем не менее в большинстве кода, который я видел, сделано именно так
ты видел код - говнокодеров... и не стоит путать C++ и C. В С - не было std::string, потому что std::string - это класс, работать с которым значительно безопасней чем с char*.

Так же не стоит забывать о методе c_str(), которые вернет char* из string, а так же други методах класса string, которые свободно заменяют базовые Сишные функции работы с массивом символов.
Yandex
Объявления
14.03.2010, 00:49     В переменную типа string записывается только первое слово строки
Ответ Создать тему
Опции темы

Текущее время: 18:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru