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

Доработать код - C++

Восстановить пароль Регистрация
 
150333
2 / 2 / 0
Регистрация: 18.10.2013
Сообщений: 107
03.03.2014, 18:56     Доработать код #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
42
43
44
#include <stdio.h>
#include <ctype.h>
#define STR_SIZE 80
char *modifystring(char *str);
 
int main()
{
    char str[STR_SIZE];
    puts("Vvedite stroky:");
    gets(str);
    puts(modifystring(str));
    return 0;
}
 
char *modifystring(char *str)
{
    char *temp = str;
    char *out = str;
    bool whitespace = false;
    while (*str)
    {
        if(isalnum(*str))
        {
            *temp++ = *str++;
            whitespace = false;
        }
 
        else if(*str == ' ')
        {
            if (!whitespace)
            {
                *temp++ = *str++;
                whitespace = true;
            }
            else *str++;
        }
 
        else *str++;
 
    }
 
    *temp = '\0';
    return out;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2014, 18:56     Доработать код
Посмотрите здесь:

C++ Доработать код для магического квадрата
C++ Атоморфные числа, С++, помогите доработать код
Массив. Помогите доработать код, подскажите где ошибки. C++
C++ Помогите доработать код.
Доработать код записной книжки C++
Дана матрица, найти макс области (доработать код) C++
C++ Доработать код данной программы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex5
881 / 616 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
03.03.2014, 20:22     Доработать код #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Чтобы функция modifystring() удаляла пробелы, достаточно преобразовать блок if(*str == ' ')
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
char *modifystring(char *str)
{
    char *temp = str;
    char *out = str;
    bool whitespace = false;
    while (*str)
    {
        if(isalnum(*str))
        {
            *temp++ = *str++;
            whitespace = false;
        }
 
        else if(*str == ' ')
        {
            str++;
        }
        //else if(*str == ' ')
        //{
        //    if (!whitespace)
        //    {
        //        *temp++ = *str++;
        //        whitespace = true;
        //    }
        //    else *str++;
        //}
 
        else *str++;
 
    }
 
    *temp = '\0';
    return out;
}
150333
2 / 2 / 0
Регистрация: 18.10.2013
Сообщений: 107
03.03.2014, 20:45  [ТС]     Доработать код #3
спасибо!)
Yandex
Объявления
03.03.2014, 20:45     Доработать код
Ответ Создать тему
Опции темы

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