Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

02.04.2014, 02:56. Просмотров 471. Ответов 8
Метки нет (Все метки)

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

Копирование слова из одной строки в другую - C++
Нужно написать часть программы, которая копирует слово из одной строки в другую, затем выполняется функция и затем копируется другое...

Найти количество вхождений одной строки в другую - C++
даны строки 1 и 2. надо найти количество вхождений из строки 1 в строку 2

Строки. Найти все слова, которые начинаются и заканчиваются одной и той же буквой. - C++
задан текст. найти все слова, которые начинаются и заканчиваются одной и той же буквой.

Дано предложение. В нем только два слова одинаковые. Найти эти слова - C++
Дано предложение. В нем только два слова одинаковые. Найти эти слова. Заранее спасибо

Найти одинаковые слова в двух строках - Pascal
Привет, как сделать так, чтобы можна было ввести с клавиатуры две строки, а в третью строку вписать одинаковые слова из первых двух строк ...

Удалить одинаковые слова в строках - C (СИ)
Здравствуйте, нужно ввести строку не более 200 символов, удалить из нее повторяющиеся слова (не повторные вхождения), вывести нужно 3...

8
alsav22
5437 / 4832 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 03:41 #2
Если несколько слов одинакового размера? Например, в одной строке два слова по пять символов, в другой - одно слово из пяти символов, что с чем менять?
0
IrineK
Заблокирован
02.04.2014, 05:02 #3
alsav22 , мне видится так:

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

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

Конец работы по завершению прохода по ведущей строке.
0
alsav22
5437 / 4832 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 05:23 #4
Цитата Сообщение от IrineK Посмотреть сообщение
мне видится так
Можно и так, вариантов много.
0
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
02.04.2014, 17:22  [ТС] #5
Я представляю алгоритм. Дело в том, что со строками я никогда не работал, и как реализовать алгоритм я не знаю. В сеть много инфы о строках,но всё не по делу..
0
alsav22
5437 / 4832 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 17:33 #6
Цитата Сообщение от rivares1853 Посмотреть сообщение
Я представляю алгоритм.
А я нет. Поделитесь?
0
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 на экран.
0
alsav22
5437 / 4832 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 18:35 #8
Предположим, первые слова, в двух строчках, оказались одинаковыми по длине, заменили. Третье слово, в первой строке, равно по длине первому (в этой же строке). Что делать с первым словом во второй строке, которое уже заменено первым из первой строки? Опять менять?

Добавлено через 12 минут
Алгоритм мне до конца не ясен, но одно из технических решений (для вашего понимания алгоритма): создаёте два вектора string, через строковые потоки читаете в эти векторы слова из строк, дальше просто (циклы просмотра векторов, сравнения элементов векторов, замены элементов векторов).
0
IrineK
Заблокирован
02.04.2014, 19:12 #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Опять менять?
В сформулированной задаче запрета на повторный обмен нет. Значит, спокойно меняем еще раз.
0
02.04.2014, 19:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2014, 19:12
Привет! Вот еще темы с ответами:

Нахождение в 2ух строках одинаковые слова. - Pascal ABC
Задание:Написать программу выполняющую указанные действия над строкой (строками).1 Сло- вом считать один и более символов латинского...

Найти число вхождений одной строки в другую - C (СИ)
Код под спойлером по собственным соображениям. #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { int l1,l2,c; char...

Переставить дрова из одной Линукс в другую. - Linux
Пробую самые разные Линуксы. То картинка плохая на видео ATI, то звука нет на M-Audio 2496, то система непонравилась. Присмотрел Альт...

Найти количество вхождений одной текстовой строки в другую - Pascal
Люди помогите ожалуйста написать программу: Вычисляющую количество вхождений одной текстовой строки в другую.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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