Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.05.2015, 13:49   #1
ValikDRV
 
Регистрация: 01.05.2011
Сообщений: 4
По умолчанию Поиск и замена составляющей массива в строке.

Приветствую.

Во избежание кучи текста напишу сразу пример.

Дано:
массив - "яблоко", "груша", "клубника" и еще примерно 500 слов;
строка - "сегодня я ел яблоко".

Найти в строке слово из массива (в данном случае "яблоко"), и заменить на другое слово.

Буду благодарен за любые подсказки. ЯП - C++

Последний раз редактировалось ValikDRV; 18.05.2015 в 16:23.
ValikDRV вне форума
Старый 18.05.2015, 13:56   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну если без кучи текста - использовать цикл, Pos и можно StringReplace - это если паскаль
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 18.05.2015, 16:23   #3
ValikDRV
 
Регистрация: 01.05.2011
Сообщений: 4
По умолчанию

Извиняюсь, забыл указать, что это нужно на С++
ValikDRV вне форума
Старый 18.05.2015, 16:36   #4
Neight
Пользователь
 
Регистрация: 30.10.2014
Сообщений: 18
По умолчанию

Если что, поправте. Я бы итератором шел по тексту от пробела до пробела, помещая каждый символ в string (string += *iterator), потом сравнивал бы string с каждым из элементов массива (я б использовал вектор) с помощью этого
Если вернет истину - заменяем слово!
Neight вне форума
Старый 18.05.2015, 16:54   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Тогда Вы создаете map, куда забиваешь пару (что меняем - на что меняем).
Дальше разбиваем на слова и смотрим по map'y нужно ли заменять (и в случае острой необходимости - меняем)
Poma][a вне форума
Старый 18.05.2015, 17:04   #6
Neight
Пользователь
 
Регистрация: 30.10.2014
Сообщений: 18
По умолчанию

РОМАХА, то есть разбиваем предложение на слова - помещаем в вектор, и сравниваем каждое слово с первым елементом пар map, если находим - заменяем.
Я правильно понял?

Последний раз редактировалось Neight; 18.05.2015 в 17:08.
Neight вне форума
Старый 18.05.2015, 17:15   #7
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Не нужно помещать в вектор, нужно сразу обрабатывать
Poma][a вне форума
Старый 18.05.2015, 18:08   #8
ValikDRV
 
Регистрация: 01.05.2011
Сообщений: 4
По умолчанию

Я в этом деле новичок, можно пример, пожалуйста?
ValikDRV вне форума
Старый 21.05.2015, 02:51   #9
ValikDRV
 
Регистрация: 01.05.2011
Сообщений: 4
По умолчанию

Вопрос решил, тему можно закрывать.
ValikDRV вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена символов в строке spaincome Паскаль, Turbo Pascal, PascalABC.NET 6 21.02.2013 18:57
Поиск значения массива в строке tsap Microsoft Office Excel 11 18.12.2012 22:17
Замена чисел в строке garethspurs Общие вопросы C/C++ 3 07.12.2012 12:30
поиск максимального значения в каждой строке массива(блок-схема) d1mka_ Помощь студентам 1 18.11.2011 18:52