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

В строках найти одинаковые по размеру слова и переставить их из одной строки в другую - C++

Восстановить пароль Регистрация
 
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
02.04.2014, 02:56     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую #1
Пользователем задаётся две строки (предложения, состоящие из слов и пробелов). Необходимо в строках найти одинаковые по размеру слова и переставить их из одной строки в другую.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 02:56     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую
Посмотрите здесь:

C++ Копирование слова из одной строки в другую
C++ Копирование одной строки в другую циклом for
переход с одной строки массива на другую C++
Удалить из строки одинаковые слова. C++
C++ Строки,копирование всех цифр из одной строки в другую
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 03:41     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую #2
Если несколько слов одинакового размера? Например, в одной строке два слова по пять символов, в другой - одно слово из пяти символов, что с чем менять?
IrineK
Заблокирован
02.04.2014, 05:02     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую #3
alsav22 , мне видится так:

Одна строка будет ведущей (внешний цикл), а вторая - ведомой (внутренний цикл).

Тогда "команду на обмен" задает ведущая строка с очередным словом. При этом проходим ведомую строку с начала и первое подходящее слово меняем. Break. Новый шаг внешнего цикла.

Конец работы по завершению прохода по ведущей строке.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 05:23     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую #4
Цитата Сообщение от IrineK Посмотреть сообщение
мне видится так
Можно и так, вариантов много.
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
02.04.2014, 17:22  [ТС]     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую #5
Я представляю алгоритм. Дело в том, что со строками я никогда не работал, и как реализовать алгоритм я не знаю. В сеть много инфы о строках,но всё не по делу..
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 17:33     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую #6
Цитата Сообщение от rivares1853 Посмотреть сообщение
Я представляю алгоритм.
А я нет. Поделитесь?
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
02.04.2014, 18:08  [ТС]     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую #7
1) Вводим строки s1 и s2, s3 и s4. Узнаём их полную длину: lens1=s1.length();и lens2=s2.length();

2) Создаём внешний for и внутренний for.

3) Во внешнем цикле, сначала мы должны считать первое слово s3[i]=s1[i] , узнать его длину len1=s3.length();

4) Теперь, во внутреннем цикле, мы должны считать второе слово s4[i]=s2[i] , узнать его длину len2=s4.length(); , if ( len1 == len2 ) { здесь мы как-то должны произвести замену (по-идее присвоением,но каким боком?!) } else { продолжаем дальше идти по второй строчке к следующему слову}

5) Когда внутренний цикл закончится, управление переходит внешнему циклу и.т.д.

6) Если похожих по длине слов не находятся, то "Ошибка". // во внутреннем цикле делается проверка : if( s1[lens1] == s2[lens2] ) { cout<<"Ошибка";}

7) Выводим s1 и s2 на экран.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 18:35     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую #8
Предположим, первые слова, в двух строчках, оказались одинаковыми по длине, заменили. Третье слово, в первой строке, равно по длине первому (в этой же строке). Что делать с первым словом во второй строке, которое уже заменено первым из первой строки? Опять менять?

Добавлено через 12 минут
Алгоритм мне до конца не ясен, но одно из технических решений (для вашего понимания алгоритма): создаёте два вектора string, через строковые потоки читаете в эти векторы слова из строк, дальше просто (циклы просмотра векторов, сравнения элементов векторов, замены элементов векторов).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2014, 19:12     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую
Еще ссылки по теме:

Строки. Найти все слова, которые начинаются и заканчиваются одной и той же буквой. C++
Копирование одной строки в другую C++
C++ Дано предложение. В нем только два слова одинаковые. Найти эти слова

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

Или воспользуйтесь поиском по форуму:
IrineK
Заблокирован
02.04.2014, 19:12     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Опять менять?
В сформулированной задаче запрета на повторный обмен нет. Значит, спокойно меняем еще раз.
Yandex
Объявления
02.04.2014, 19:12     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую
Ответ Создать тему
Опции темы

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