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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
lusuj
0 / 0 / 0
Регистрация: 11.11.2008
Сообщений: 13
#1

Заменить любую группу пробелов одним - C++

14.11.2008, 13:49. Просмотров 1266. Ответов 5
Метки нет (Все метки)

помогите пожалуйста с лабой. необходимо сжать строку , заменив любую группу пробелов одним пробелом.Исходную строку и результат вывести на экран. Подпрограмму обработки строки следует оформить в виде функции.
Очень признателен за любую помощь(информацию).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2008, 13:49     Заменить любую группу пробелов одним
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alirp
55 / 50 / 1
Регистрация: 04.05.2008
Сообщений: 273
14.11.2008, 14:33     Заменить любую группу пробелов одним #2
в принцпе ничего сложного нет, просто в цикле перебираешь всю строку с записью ее в другой массив и ищеш в ней пробел, если пробел встретился то записываешь его в массив выставляешь какую нибудь переменную в виде флага (она будет означать что встретился пробел), проверяешь следующий символ, если он опять равен нулю, то его не записываешь, если же нет, то снимаешь флаг (устанавливаешь переменную в 0) записываешь символ в массив и т.д.
mik-a-el
CyberForum Owner
56978 / 36728 / 231
Регистрация: 10.04.2006
Сообщений: 12,652
14.11.2008, 14:38     Заменить любую группу пробелов одним #3
Способ номер два: заменяешь два пробела одним до тех пор, пока в строке не останется двойных пробелов.
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
14.11.2008, 15:37     Заменить любую группу пробелов одним #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
char* Compress(char* str,int size)
{
         for(size_t i=0;i<size-1;i++)
         {
                  if((str[i]==' ')&&(str[i+1]==' '))
                  {
                           strcpy(&str[i],&str[i+1]);
                           i--;
                  }
          }
          return str;
}
Alexen
Сообщений: n/a
14.11.2008, 17:42     Заменить любую группу пробелов одним #5
Лови програмку выберешь что тебе надо:
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
#include <iostream.h>
#include <conio.h>
 
void C_string(char *);
 
main()
{
    char string[] = "Эту    строку       будем           сжимать.";
 
    cout << "Строка до сжатия : " ;
    cout << string;
    cout << endl << "Строка после сжатия : " ;
 
    C_string(string); // передаем массив для сжатия
 
 
 getch();
 return 0;
}
 
 
void C_string(char *string1)   // Функция сжатия строк с любым количеством пробелов (в пределах размара массива)
{
 char string2[50] ;
 int count =0;
 
    for(int i=0; string1[i] != '\0'; i++)
        {
            if(string1[i] != ' ')
                {
                    string2[count] = string1[i];
                    ++count;
                }
        else
            if(string1[i] == ' ' && string1[i-1] != ' ')
                    {string2[count] = ' '; ++count;}
        }
 
 string2[count] = '\0';
 
 cout << string2;
}
lusuj
0 / 0 / 0
Регистрация: 11.11.2008
Сообщений: 13
14.11.2008, 21:09  [ТС]     Заменить любую группу пробелов одним #6
всем огромное спасибо
Yandex
Объявления
14.11.2008, 21:09     Заменить любую группу пробелов одним
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru