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

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

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

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

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

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

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

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

Удалить из строки одинаковые слова. - C++
Собственно, вот и само задание. Для заданного предложения необходимо найти и удалить одинаковые слова. Нужно на С. Поискал по форуму, но не...

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

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

Копирование содержимого одной строки в другую - C++
как в с++ копировать строки Добавлено через 22 минуты например дано строку в которей єсть число и надо его скопировать в другую...

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

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

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

Конец работы по завершению прохода по ведущей строке.
alsav22
5416 / 4812 / 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
5416 / 4812 / 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
5416 / 4812 / 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     В строках найти одинаковые по размеру слова и переставить их из одной строки в другую
Еще ссылки по теме:

Скопировать string из одной строки в другую - C++
надо из одной строки в другую определенное количество символов с определенной позиции Например: #include &lt;string&gt; #include &lt;iostream&gt;...

В середину одной строки вставить другую - C++
Здравствуйте! Задача такая: В середину одной строки вставить другую. Не использовать библиотеки С. Вот мой код, но он вылетает, когда я...

Копирование одной строки в другую циклом for - C++
Добрый день! есть программа, в которой пытаюсь скопировать одну строку в другую(без использования strcpy()) : int _tmain(int argc,...

Переход с одной строки массива на другую - C++
проблема собственно в том что с первой строки массива цикл не переходит на другую. Это таблица тритемия. Прога работает но не коректно,...


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

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

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