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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
iKapex
3 / 3 / 0
Регистрация: 07.10.2012
Сообщений: 227
04.03.2013, 00:47     Строка: Удалить лишние пробелы между словами #1
Задание: нужно удалить лишние пробелы между словами (если один пробел, то его нужно оставить).

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# include <conio.h>
# include <cctype>
# include <iostream>
 
using namespace std;
 
void DeletSpace (char str [] );
 
int main ()
 
{
    char str [ ] = "Delete      my space";
 
     DeletSpace ( str ); 
 
     system ("pause");
}
 
 
void DeletSpace (char  str[] )
{
    int spacecounter = 0;// счетчик пробелов
    int lightarray;
    lightarray = strlen (str); // узнаем длину массива
 
    for (int i=0; i < lightarray; ++i)
    {
        if (isspace (str [i]) ) // если пробел, тогда увеличиваем счетчик пробелов
             ++spacecounter;
 
        if ( isspace (str [i]) == 0 && spacecounter  < 2) // если isspace равно нулю, то isspace возвращает символ; и если счетчик пробелов
                                 
 
                                    // не больше двух, тогда распечатываем этот символ.
           cout << str [i];
 
        else spacecounter = 1; 
    
 
    }
}
Вот сто пудов у меня ошибка в последнем if в моей написанной функции. Исправьте, пжл., кто-нибудь.
Эта прога удаляет ВСЕ пробелы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2013, 00:47     Строка: Удалить лишние пробелы между словами
Посмотрите здесь:

Вывести на экран содержимое файла удалив лишние пробелы между словами C++
C++ Исключить лишние пробелы между словами (комментарии)
Удалить лишние пробелы C++
Строка: удалить лишние пробелы и определить слово с минимальным кол-вом согласных в строке C++
C++ Убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два.
C++ Работа с файлами. Удалить все лишние пробелы, оставив между словами не более одного пробела
Удалить в строке лишние пробелы, оставив между словами ровно по одному C++
C++ Дана строка. Удалить из нее все лишние пробелы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11807 / 6786 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
04.03.2013, 01:15     Строка: Удалить лишние пробелы между словами #2
C++
1
2
3
4
5
6
7
8
void Trim_SD(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;
    }
}
Yandex
Объявления
04.03.2013, 01:15     Строка: Удалить лишние пробелы между словами
Ответ Создать тему
Опции темы

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