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

Удалить лишние пробелы в строке - C++

Восстановить пароль Регистрация
 
igor223
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 37
02.04.2014, 14:27     Удалить лишние пробелы в строке #1
Дано строку. Удалить лишние пробелы.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
02.04.2014, 14:42     Удалить лишние пробелы в строке #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "iostream"
 
 
void foo(char * dest, char * source){
    for(char *p1=source,*p2=dest; (*p2=*p1);++p1,++p2){
        if(*p1!=' ') continue;
        for(;*p1==' ';++p1);
            p2+=(p2==dest || !(*p1))?0:1;
            *p2=*p1;
    }
}
 
 
int main()
{
   char str[120] = "   my   string  !   " ;
   foo ( str , str ) ;
   std::cout << str << std::endl ;
}
igor223
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 37
02.04.2014, 18:06  [ТС]     Удалить лишние пробелы в строке #3
Croessmah,
Цитата Сообщение от Croessmah Посмотреть сообщение
char * dest, char * source
а дял чево ?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
02.04.2014, 18:36     Удалить лишние пробелы в строке #4
Цитата Сообщение от igor223 Посмотреть сообщение
а дял чево ?
что для чего?
source откуда берем строку, dest - куда результат пихаем. Функция написана так, что можно использовать один и тот же массив использовать

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
void foo(char * dest, const char * source){
    for(char *p1=dest ; (*p1=*source);++source,++p1){
        if(*source!=' ') continue;
        for(;*source==' ';++source) ;
         p1+=!(p1==dest || !(*source));
         *p1=*source;
    }
}
igor223
0 / 0 / 0
Регистрация: 01.02.2014
Сообщений: 37
02.04.2014, 18:44  [ТС]     Удалить лишние пробелы в строке #5
Croessmah,
Цитата Сообщение от Croessmah Посмотреть сообщение
?0:1;
в это еще не понимаю
Yandex
Объявления
02.04.2014, 18:44     Удалить лишние пробелы в строке
Ответ Создать тему
Опции темы

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