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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kindlyforever
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 6
#1

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

13.03.2010, 15:20. Просмотров 477. Ответов 7
Метки нет (Все метки)

Как вписывать предложения в тип 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 слов с разными индексами. Как это выходит?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2010, 15:20     В переменную типа string записывается только первое слово строки
Посмотрите здесь:

C++ Переменную типа string вывести в printf?
C++ Чтение из файла в переменную типа string
Сравнить переменную типа string с содержимым файла C++
Как разбить переменную типа String на 2 части? C++
C++ Считывается только первое слово из строки
C++ НЕ записывается содержимое файла в переменную типа char
C++ Как использовать переменную типа string в заголовочном файле?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 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
4929 / 2509 / 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
2297 / 1667 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.03.2010, 18:09     В переменную типа string записывается только первое слово строки #6
Цитата Сообщение от hx Посмотреть сообщение
fasked, возможно, тем не менее в большинстве кода, который я видел, сделано именно так.
Думаю код относился в основном к учебным программам. Без особой необходимости никто не станет возиться со строками в стиле Си - уж очень это неудобно.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,216
Завершенные тесты: 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++ Ввод предложения в консольном приложении: в переменную попадает только первое слово
C++ Как записать длину строки типа string в переменную
C++ Вставить один символ в переменную типа string
C++ Азбука Морзе, кодируется только первое слово строки
Объявить в заголовочном файле переменную типа std::string C++

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

Или воспользуйтесь поиском по форуму:
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 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 записывается только первое слово строки
Ответ Создать тему
Опции темы

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