![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 10.12.2009
Сообщений: 22
|
![]()
Задание у меня таково, что нужно ввести текст с заданным количеством строк, массив символов-разделителей, и слово. Сформировать новый текст, состоящий только из строк с нечетным количеством слов. Потом в этом тексте нужно заменить все слова минимальной длины на это заданное слово, а потом вывести новый массив. Я доделал до замены слов. Напишите, пожалуйста, как заменять слова. Что-то мне не допереть) А сдавать завтра, или отчислят=(
сформированный массив - new_text, заменяющее слово - new_word Код:
Последний раз редактировалось RZMTZM; 24.01.2010 в 21:51. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 234
|
![]()
У тебя представленный код рабочий?
(у меня дает ошибку на realloc) P.S. Почему используешь такой блок Код:
Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 10.12.2009
Сообщений: 22
|
![]()
Потому что память выделяю... Сказали так сделать..
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 234
|
![]()
Ладно, дело твое... видимо у тебя все работает нормально, кроме замены слов... Тогда просто расскажу теорию как заменять слова в char'овских массивах.
P.S. как у тебя работают do-while'ы??? ведь в: Код:
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 234
|
![]()
Ладно, дело твое... видимо у тебя все работает нормально, кроме замены слов... Тогда просто расскажу теорию как заменять слова в char'овских массивах.
P.S. как у тебя работают do-while'ы??? ведь в: Код:
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 234
|
![]()
В кратце теория замены слов:
1)Дано: а)Длина слова, которое надо заменить (L1) б)Индекс первого символа слова, которое надо заменить (I1) в)Длина нового слова(L2) 2)Действия: а)Считается разница длин слов (L2-L1=R) если R>0 длина массива увеличивается на R элементов и производится смещение элеметов вправо [смещение с послденего элемента до I1+L1 не включая]. Новое слово посимвольно записывается в массив начиная с I1 элемента если R<0 производится смещение элементов влево на |R| элементов [смещение с I1+L1+1 включая до последнего]. Длина массива уменьшается на |R| элементов. Новое слово посимвольно записывается в массив начиная с I1 элемента если R==0 Новое слово посимвольно записывается в массив начиная с I1 элемента |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 10.12.2009
Сообщений: 22
|
![]()
Ага... Только этих слов может быть несколько в одной строке, а может и не быть... А индексы я их не знаю.. Но все равно спасибо, может получится)
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 234
|
![]()
Если слов несколько, алгоритм повторяется для каждого слова по очереди, если таковых слов не имеется, тогда алгоритм не запускается.
А по поводу индексов слов более менее рационально можно сделать так: Создаешь динамический массив типа int (mas_index). когда ты ищешь слово с минимальной длиной, ты пробегаешь по всему массиву и сравниваешь длину текущего слова с ранее найденным (на текущий момент самым коротким). Просто добавь еще один if который будет проверять равны ли длины этих слов, если да то запиши индекс первого символа в mas_index. Если нашел более короткое слово, то mas_index изменяет свои размеры до одного и записывает новый индекс. Тут главное помнить что при выполнении алгоритма замены слов индексы слов (которые хранятся в mas_index) тоже будут изменяться на -R или +R при каждой замене. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Замена слов в Office | noMaster | Microsoft Office Word | 2 | 19.12.2009 19:05 |
excel Определить максимальное и минимальное значение длины слов в таблице | Nibbler | Помощь студентам | 0 | 05.12.2009 22:42 |
Поиск и замена слов. | ildarn | Общие вопросы C/C++ | 1 | 25.11.2009 19:01 |
замена слов | lekom | Общие вопросы Delphi | 7 | 27.09.2009 23:46 |
замена столбцов в массиве | DeFace | Общие вопросы C/C++ | 10 | 10.01.2009 23:16 |