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

Преобразовать строку так, чтобы между словами был ровно один пробел - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.79
alex.-93
74 / 98 / 1
Регистрация: 01.10.2011
Сообщений: 177
01.10.2011, 09:15     Преобразовать строку так, чтобы между словами был ровно один пробел #1
При реализации программы необходимо использовать функции обработки строк из библиотек stdlib.h и string.h

Дана строка-предложение с избыточными пробелами между словами. Преобразовать ее так, чтобы между словами был ровно один пробел
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2011, 09:15     Преобразовать строку так, чтобы между словами был ровно один пробел
Посмотрите здесь:

преобразовать массив так, чтобы между 0 ограничивающими первый отрезок, оказались элементы второго отрезка. C++
Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела C++
добавить пробел между словами C++
C++ Преобразовать строку так, чтобы все буквы в ней были отсортированы по возрастанию
C++ В строке между словами вставить вместо пробела запятую и пробел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
01.10.2011, 20:22     Преобразовать строку так, чтобы между словами был ровно один пробел
  #21

Не по теме:

Пишу лишь с целью дискусси об эффективности

Цитата Сообщение от easybudda Посмотреть сообщение
hile ( isspace(*(p+1)) )
* * * * * * * * * * * * * * * * * * * * memmove(p+1, p+2, strlen(p+1));
- думаю проще всё же подсчитать число пробелов, а потом уж сдвинуть блок памяти (на каждом пробеле двигать полстроки думаю менее эффективно)
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(buf + i)
* * * * * * * * * * * * {
* * * * * * * * * * * * * * * * //Последовательно проверяем каждй символ после пробела
* * * * * * * * * * * * * * * * if((buf + i)[0] == ' ')
* * * * * * * * * * * * * * * * * * * * i++;

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
01.10.2011, 20:22     Преобразовать строку так, чтобы между словами был ровно один пробел #22
Всё, вроде понял.)
easybudda
01.10.2011, 20:49
  #23

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
Для чего эта проверка, которая всегда TRUE?
С чего бы ей всегда true быть? На самом деле printf() может вернуть отрицательное значение, если с консолью в системе не комильфо. Оно, конечно, редкость, и в учебных программах можно было бы не заморачиваться, но есть другое мнение, к тому же формально с проверкой действительно правильнее.

Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 07:57     Преобразовать строку так, чтобы между словами был ровно один пробел #24
Цитата Сообщение от easybudda Посмотреть сообщение
С чего бы ей всегда true быть?
Цитата Сообщение от Deviaphan Посмотреть сообщение
Всё, вроде понял.)
Но ЮрА успел втиснуться.)
Но мне, всё равно, чисто по стилю такая запись не нравится (printf и scanf в одной строке). Делает геморной отладку.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
02.10.2011, 13:40     Преобразовать строку так, чтобы между словами был ровно один пробел #25
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
лишь с целью дискусси об эффективности
код мной был написан по принципу наименьшей замороченности. Оптимизировать его можно до второго пришествия, но это будет совсем другой код. Так проще было, потому так и сделал, эффективностью не озадачивался - работает, да и ладно.


Цитата Сообщение от Deviaphan Посмотреть сообщение
Но мне, всё равно, чисто по стилю такая запись не нравится (printf и scanf в одной строке). Делает геморной отладку.
Не знаю, с какого бока вы там что отлаживаете, что на таких вещах сложности вызывает, в плане наглядности по-моему так значительно лучше. Условие while - практически встроенная функция, которая выдаёт запрос пользователю и возвращает ввод.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.10.2011, 14:07     Преобразовать строку так, чтобы между словами был ровно один пробел #26
Цитата Сообщение от easybudda Посмотреть сообщение
Не знаю, с какого бока вы там что отлаживаете
Ошибка может произойти и в printf и в scanf. Как узнать в какой из них, если они в одной строке? Т.е не входя внутрь этих функций, кода которых нет. Я об этом говорю. Надуманная проблема.)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2015, 20:49     Преобразовать строку так, чтобы между словами был ровно один пробел
Еще ссылки по теме:

C++ Преобразовать строку так, чтобы буквы каждого слова были остортированы по возрастанию
Удалить в строке лишние пробелы, оставив между словами ровно по одному C++
Как сделать, чтобы в результате был пробел между именем и фамилией и отображалось отчество C++

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

Или воспользуйтесь поиском по форуму:
SweenyTodd
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 1
16.09.2015, 20:49     Преобразовать строку так, чтобы между словами был ровно один пробел #27
Дана строка-предложение с избыточными пробелами между словами. Преобразовать ее так, чтобы между словами был ровно один пробел.
Может кто знает, как эту задачу решить используя классы? Такое задание от препода поступило...
Yandex
Объявления
16.09.2015, 20:49     Преобразовать строку так, чтобы между словами был ровно один пробел
Ответ Создать тему
Опции темы

Текущее время: 04:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru