75 / 99 / 1
Регистрация: 01.10.2011
Сообщений: 177
|
|
1 | |
Преобразовать строку так, чтобы между словами был ровно один пробел01.10.2011, 09:15. Просмотров 6727. Ответов 26
Метки нет Все метки)
(
При реализации программы необходимо использовать функции обработки строк из библиотек stdlib.h и string.h
Дана строка-предложение с избыточными пробелами между словами. Преобразовать ее так, чтобы между словами был ровно один пробел
0
|
|
01.10.2011, 09:15 | |
Отредактировать текст так, чтобы между словами был ровно один пробел
Преобразовать строку так, чтобы между словами был ровно один пробел
|
|
Делаю внезапно и красиво
![]() 1310 / 1225 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 09:36 | 2 |
strtok по исходной строке и добавлять токены в новую через пробел. strcpy для добавления используй.
сперва подсчитай количество лишних пробелов в исходной строке, чтобы знать размер результирующей. strlen для узнавания длины всей строки. Добавлено через 1 минуту Что это за функции, смотреть в MSDN.
1
|
Заблокирован
![]() |
||||||
01.10.2011, 10:57 | 3 | |||||
Ниже Си реализация указанного задания(программа позволяет много кратный ввод предложнияий)слова в которых разделёны множественными пробелами).
1
|
Делаю внезапно и красиво
![]() 1310 / 1225 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 11:44 | 4 |
Замени printf на sprintf и разделяющий пробел добавь ТОЛЬКО между слов и тогда это будет реализация задания.
1
|
01.10.2011, 11:48 | 5 | |||||
alex.-93, держи.
1
|
Делаю внезапно и красиво
![]() 1310 / 1225 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 12:05 | 6 |
Происходят лишние копирования после нуль-терминанта. Не существенно, но всё же.
И по заданию необходимо использовать string.h.
1
|
75 / 99 / 1
Регистрация: 01.10.2011
Сообщений: 177
|
|
01.10.2011, 13:18 [ТС] | 7 |
Большое спасибо всем!!!
![]()
0
|
Заблокирован
![]() |
||||||
01.10.2011, 16:52 | 8 | |||||
alex.-93, смотри реализацию своего алгоритма вточности по заданию!
1
|
Заблокирован
![]() |
||||||
01.10.2011, 17:04 | 9 | |||||
alex.-93, по твоему вопросу что такое токен
Токен это подстрока в исходной строке(в общем это не слово, а участок символов строки ограниченных символами из )Если бы мы написали char delim[] = " ,.&!"; то выделяли бы из строки все слова. В реализации приведенной мной во 2-м посте strtok будет возвращать такие токены: слово слово, слово. слово! и т.д... Добавлено через 9 минут b]alex.-93[/b], ни в коем случае никогда так не делай - strtok небезопасная функция, которая УНИЧТОЖАЕТ исходную строку, работая c ней после вызова strtok можешь вызвать непредсказуемое поведение приложения! Так НИКОГДА НЕ ДЕЛАЙ!
Не по теме: PS:Тебе подсказали не проверив а верней не зная то о чём пишут...
1
|
![]() 5813 / 3464 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
01.10.2011, 17:06 | 10 |
1
|
|
01.10.2011, 17:15
#11
|
Не по теме: в задании говориться об исходной строке, для варианта со strtok по меньшей мере нужен будет буфер для накопления sprintf(BUFER, "%s ",buf); а затем из него делать перекопировку в исходную строку которая после работы strtok будет "уничтожена", это формально будет по заданию, а фактически мы не исходную строку преобразуем а уничтожим её и "создадим" вновь...
1
|
![]() 5813 / 3464 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
01.10.2011, 17:21 | 12 |
-=ЮрА=-, никто не спорит, что strtok изменяет переданную ей строку
1
|
Делаю внезапно и красиво
![]() 1310 / 1225 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 17:35 | 13 |
1
|
Заблокирован
![]() |
||||||
01.10.2011, 17:36 | 14 | |||||
alex.-93, чтоб уж привести и вариант упомянутый
Nameless One, привожу код(он тоже полностью функционален)
0
|
|
01.10.2011, 17:39
#15
|
0
|
Делаю внезапно и красиво
![]() 1310 / 1225 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 18:29 | 16 |
Напиши строку без пробела в конце и в результирующей всё-равно в конце пробел будет.
Добавлено через 54 секунды Если в начале строки много пробелов, твой вариант ни одного не оставит.
0
|
Заблокирован
![]() |
||||||
01.10.2011, 19:17 | 17 | |||||
- какой пробел вконце
![]() На компилируй
Не по теме: PS:Иди почитай о функциях для работы со строками в стиле Си и кончай нести ахинею...
0
|
Делаю внезапно и красиво
![]() 1310 / 1225 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 19:34 | 18 |
0
|
Модератор
![]() ![]() ![]() ![]() 10877 / 6768 / 1619
Регистрация: 25.07.2009
Сообщений: 12,484
|
||||||
01.10.2011, 20:13 | 19 | |||||
0
|
Делаю внезапно и красиво
![]() 1310 / 1225 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 20:20 | 20 |
0
|
01.10.2011, 20:20 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |