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

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

Войти
Регистрация
Восстановить пароль
 
 
MaXaS
10 / 10 / 0
Регистрация: 22.05.2011
Сообщений: 164
#1

Разбить входную строку, состоящую из трех слов, на слова - C++

12.03.2012, 02:08. Просмотров 731. Ответов 16
Метки нет (Все метки)

Нужно написать программу, которая записывает входную строку состоящюю из трех слов в три разных(по слову в каждую) строки. Желательно без использования библиотек, кроме iostream.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2012, 02:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разбить входную строку, состоящую из трех слов, на слова (C++):

Использование STRTOK Разбить строку на слова, из слов составить список C++ Функция strtok - C++
Задача Дана строка слов с разделителями, в данном примере слова с пробелами Нужно, используя функцию strtok, сформировать из этих слов...

Сформировать новую строку, состоящую из слов исходной строки - C++
задача такая: дана строка состоящая из слов разделенных пробелами сформировать новую строку состоящую из слов исходной строки Пример...

Сформировать строку, состоящую из слов исходной строки, записанных наоборот - C++
Помогите с задачами я недошурупиваю как решить: "Сформировать строку, состоящую из слов исходной строки, записанных наоборот" ...

Строка: Строку разбить на слова и слова запихнуть в массив char. - C++
Вобщем пока нужно: 1) строку разбить на слова и слова запихнуть в масив char. но у меня почему то вообще не то записывает в масив, хоча...

Разбить строку на слова, добавить эти слова в массив строк - C++
Привет всем! Понадобилось решить одну простенькую задачку: Разбить строку на слова, добавить эти слова в массив строк, вывести...

Строку разбить на слова и слова запихнуть в масив char - C++
Вобщем пока нужно: 1) строку разбить на слова и слова запихнуть в масив char. но у меня почему то вообще не то записывает в масив, хоча...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
12.03.2012, 02:09 #2
Можно пример входной строки и выходных.
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
12.03.2012, 02:12 #3
C++
1
cin << word1 << word2 << word3;
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
12.03.2012, 02:23 #4
kazak,
C++
1
cin >> word1 >> word2 >> word3;
MaXaS
10 / 10 / 0
Регистрация: 22.05.2011
Сообщений: 164
12.03.2012, 08:10  [ТС] #5
Неет, доспустим на входе уже есть строка string1 "word1 word2 word3". На выходе нужно записать word1 в первую строку, word2 во вторую, и соответственно word3 в третью.
ПС Нужно работать не с вводом/выводом, а нужно вытащить из уже существующих строк слова.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
12.03.2012, 10:48 #6
MaXaS, istringstream
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
12.03.2012, 10:57 #7
boost::split. А вручную писать лень.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
12.03.2012, 11:19 #8
Цитата Сообщение от ForEveR Посмотреть сообщение
А вручную писать лень.
Ну можно
C++
1
2
3
4
5
6
7
8
9
10
11
12
typedef std::string             T_str;
typedef std::vector<T_str>      T_vec;
 
int split_str_to_vec(const T_str s, const T_str DELIM, T_vec &v)
{
    size_t l, r;
 
    for ( l = s.find_first_not_of(DELIM), r = s.find_first_of(DELIM, l) ; 
        l != std::string::npos ; l = s.find_first_not_of(DELIM, r), r = s.find_first_of(DELIM, l) )
        v.push_back(s.substr(l, r - l));
    return v.size();
}
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 12:27 #9
Зачем так сложно?

C++
1
2
3
4
5
6
7
8
9
10
11
void string2three(string str, string three[])
{
  for(int i=0, j=0; i<str.length(); ++i)
  {
    if(str[i] == ' ')
    {
      ++j; continue;
    }
    three[j] += str[i];
  }
}
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
12.03.2012, 12:40 #10
Ksan,
1) Почему сложно? Если для вас сложно - не значит, что сложно для остальных.
2) Где обработка прочих разделителей?
3)
C++
1
2
std::vector<std::string> words;
boost::split(words, string, boost::is_any_of(delims), boost::token_compress_on);
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 12:45 #11
1) использовать вектора, когда можно обойтись обычным фором считаю неразумным
2) слова испокон веков разделяются пробелами. да и усовершенствовать иф не так уж сложно
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
12.03.2012, 12:47 #12
Если слова разделены пробелом, табом или переходом на новую строку, то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <string>
#include <sstream>
#include <iostream>
 
int main()
{  
  std::string w = "w1 w2 w3", w1, w2, w3;
  std::istringstream s(w);
  s >> w1 >> w2 >> w3;
  std::cout << w1 << "\t" << w2 <<"\t" << w3 << std::endl;
}
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
12.03.2012, 12:53 #13
Ksan, А я считаю неразумным писать лесопеды, когда есть уже готовые вещи...
MaXaS
10 / 10 / 0
Регистрация: 22.05.2011
Сообщений: 164
12.03.2012, 18:53  [ТС] #14
А есть ли аналог istringstream в QT?
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
12.03.2012, 19:27 #15
MaXaS, QTextStream
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2012, 19:27
Привет! Вот еще темы с ответами:

Создать строку,ввод которой осуществляется с клавиатуры, состоящую из слов, разделенных пробелами - C++
Создать строку,ввод которой осуществляется с клавиатуры, состоящую из слов, разделенных пробелами.

Разбить строку на слова - C++
Разбить строку на слова. Все слова записать в отдельную строку. Помогите пожалуйста не получается. #include &lt;iostream&gt; #include...

Разбить строку на слова - C++
Добрый день. Есть массив char (say), в него вводят строку (два-три слова) с пробелами и без пробела в конце. Цикл разбивает её на отдельные...

Разбить строку на слова - C++
Здравствуйте! Решаю задачу, надо разбить предложение на слова с помощью функции strtok. Делаю вот так но не уверен что это правильно....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.03.2012, 19:27
Ответ Создать тему
Опции темы

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