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

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

Восстановить пароль Регистрация
 
Zheka1992
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 4
06.01.2013, 17:25     Удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом #1
Задана строка символов. Преобразовать эту строку следующим образом: удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2013, 17:25     Удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом
Посмотрите здесь:

заменить любую группу пробелов одним C++
Дана строка удалить все пробелы или просто присвоить в другую строку без пробелов C++
C++ В массиве каждую группу рядом стоящих одинаковых элементов заменить одним и тем же значением
Заменить серию пробелов одним символом пробела C++
Подсчет колличества слов разделенных пробелом и пробелов в файле C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
06.01.2013, 18:33     Удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом #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;
    }
}
Zheka1992
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 4
06.01.2013, 19:34  [ТС]     Удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом #3
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
#include <stdio.h> 
#include <stdlib.h>
#include <conio.h> 
 
int WasFound(char const str[], int i, int from)
{
    for(int j=from; j<i; j++) if(str[j]==str[i]) return 1;
    return 0;
}
    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;
    }
}
    int main()
{
    char str1[256], str2[256]=""; 
    printf("Program make string frrom Your string removing each repeating character in each word\n");
    printf("Enter Your string:\n");
    gets(str1);
    Trim_SD(str1, str2);
    printf("String after convertion:\n");
    puts(str2);
    system("PAUSE");
    return EXIT_SUCCESS;
}

Исправьте пожалуйста ошибки
Строка после не появляется
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
06.01.2013, 19:40     Удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом #4
C++
1
Trim_SD(str2, str1);
И еще, функция устроена так, что можно исправить саму строку:
C++
1
2
3
Trim_SD(str1, str1);
//...
puts(str1);
Igor3D
792 / 409 / 33
Регистрация: 01.10.2012
Сообщений: 2,067
06.01.2013, 19:47     Удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void RemBlank( char * src )
{
  char * dst = src;
  bool prevBlank = false;
  bool first = true;
  while (*src) {
   if (*src == ' ')  
    prevBlank = true;
   else {
     if (prevBlank && !first) 
      *(dst++) = ' ';
     *(dst++) = *src;
     prevBlank = false;
     first = false;
   }
   ++src;
  }
  *dst = 0;
}
Zheka1992
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 4
06.01.2013, 20:01  [ТС]     Удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом #6
Все Спасибо получилось
Yandex
Объявления
06.01.2013, 20:01     Удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом
Ответ Создать тему
Опции темы

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