75 / 99 / 1
Регистрация: 01.10.2011
Сообщений: 177
|
|
1 | |
Преобразовать строку так, чтобы между словами был ровно один пробел01.10.2011, 09:15. Показов 10602. Ответов 26
Метки нет (Все метки)
При реализации программы необходимо использовать функции обработки строк из библиотек stdlib.h и string.h
Дана строка-предложение с избыточными пробелами между словами. Преобразовать ее так, чтобы между словами был ровно один пробел
0
|
01.10.2011, 09:15 | |
Ответы с готовыми решениями:
26
Отредактировать текст так, чтобы между словами был ровно один пробел Отредактировать текст так, чтобы между словами был ровно один пробел Преобразовать строку так, чтобы между словами был ровно один пробел Преобразовать строку так, чтобы между словами был ровно один пробел |
Делаю внезапно и красиво
1313 / 1228 / 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
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 11:44 | 4 |
Замени printf на sprintf и разделяющий пробел добавь ТОЛЬКО между слов и тогда это будет реализация задания.
1
|
01.10.2011, 11:48 | 5 | |||||
alex.-93, держи.
1
|
Делаю внезапно и красиво
1313 / 1228 / 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
|
5828 / 3479 / 358
Регистрация: 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
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
01.10.2011, 17:21 | 12 |
-=ЮрА=-, никто не спорит, что strtok изменяет переданную ей строку
1
|
Делаю внезапно и красиво
1313 / 1228 / 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
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 18:29 | 16 |
Напиши строку без пробела в конце и в результирующей всё-равно в конце пробел будет.
Добавлено через 54 секунды Если в начале строки много пробелов, твой вариант ни одного не оставит.
0
|
Заблокирован
|
||||||
01.10.2011, 19:17 | 17 | |||||
- какой пробел вконце, вот тебе код показывающий есть пробел или нет его, после цикла вконце строки дописываю '!'.
На компилируй
Не по теме: PS:Иди почитай о функциях для работы со строками в стиле Си и кончай нести ахинею...
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 19:34 | 18 |
0
|
Модератор
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
01.10.2011, 20:13 | 19 | |||||
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
01.10.2011, 20:20 | 20 |
0
|
01.10.2011, 20:20 | |
01.10.2011, 20:20 | |
Помогаю со студенческими работами здесь
20
Преобразовать строку так, чтобы между словами был ровно один пробел Переобразовать строку так, чтобы между словами был ровно один пробел Дана строка-предложение, содержащая избыточные пробелы. Преобразовать ее так, чтобы между словами был ровно один пробел. Дана строка-предложение, содержащая избыточные пробелы. Преобразовать ее так, чтобы между словами был ровно один пробел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |