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

первый пробел в строке - C++

Восстановить пароль Регистрация
 
ureman
2 / 2 / 0
Регистрация: 27.01.2010
Сообщений: 17
01.04.2010, 11:36     первый пробел в строке #1
вообщем проблема
есть текст – некоторое количество строк.
1)Сжать строки текста удалением левых, правых пробелов и заменой одним пробелом групп
внутренних последовательных пробелов.
2)Сжатые строки отсортировать по убыванию средней длины их слов
вот то что есть
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <locale>
#include <string>
#include <fstream>
using namespace std;
 
void C_string(char *);
 
int main()
{locale::global(locale("rus"));
    char buffer[300];
    ifstream fin;
        fin.open("data.txt");
            if(!fin)
                {
                    cout<<"error open file data.txt";
                    return -1;
                }
 
                    
                    while(1)
                    {
                        fin.getline(buffer, sizeof(buffer));
                        if (fin.eof()) break;
                        C_string(buffer); // передаем массив для сжатия
                    }
            
    
        fin.close();
        
cout<<endl;
system("pause");
 return 0;
}
 
 
void C_string(char *buffer)   
{
 char string1[300];
 
 
    int count =0;
 
    for(int i=0; buffer[i] != '\0'; i++)
    {
                   if(buffer[i] != ' ')
                {
                    string1[count] = buffer[i];
                    ++count;
                }
        else
            if(buffer[i] == ' ' && buffer[i-1] != ' ')
                    {
                        string1[count] = ' '; 
                        ++count;
                    }
        }
 
 string1[count] = '\0';
 cout << string1;
 cout<<endl;
 
 
    
}
пробелы в строке удаляются хорошо, а вот первый остается. как его убрать?
пробовал копировать оставшиеся символы в еще один массив, но конец массива забивается мусором... как исправить? буду признателен за подробный ответ
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2010, 11:36     первый пробел в строке
Посмотрите здесь:

как определить количество 'пробел' в строке. C++
C++ в строке между словами вставить вместо пробела запятую и пробел?
Заменить в строке последовательность пробелов на один пробел. C++
C++ Строка вводится с клавиатуры. В данной строке вставить пробел после каждого символа
C++ В строке между словами вставить вместо пробела запятую и пробел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 193
01.04.2010, 15:01     первый пробел в строке #2
можно перейти ко второму вопросу...как мне передать объект своего класса так чтобы все установившиеся значения остались какие были?
ureman
2 / 2 / 0
Регистрация: 27.01.2010
Сообщений: 17
01.04.2010, 18:11  [ТС]     первый пробел в строке #3
Цитата Сообщение от salvafion Посмотреть сообщение
можно перейти ко второму вопросу...как мне передать объект своего класса так чтобы все установившиеся значения остались какие были?
уважаемый, я не просил стебаться, я просил совет.
salvafion
10 / 10 / 1
Регистрация: 16.06.2009
Сообщений: 193
01.04.2010, 20:53     первый пробел в строке #4
извини это был ошибочный флуд я просто думал что я в другую тему пишу))
ureman
2 / 2 / 0
Регистрация: 27.01.2010
Сообщений: 17
02.04.2010, 06:17  [ТС]     первый пробел в строке #5
принято... а если по теме?
Voron8
13 / 13 / 1
Регистрация: 28.04.2009
Сообщений: 62
02.04.2010, 06:36     первый пробел в строке #6
cnhjrf 53
C++
1
if(buffer[i] == ' ' && buffer[i-1] != ' '&& i!=0)
Добавлено через 3 минуты
хотя первое условие (buffer[i] == ' ') лишнее
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2010, 09:30     первый пробел в строке
Еще ссылки по теме:

C++ как найти предыдущий пробел в строке?
C++ В символьной строке между словами вставить вместо пробела запятую и пробел
Дописать к строке число через пробел C++

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

Или воспользуйтесь поиском по форуму:
ureman
2 / 2 / 0
Регистрация: 27.01.2010
Сообщений: 17
02.04.2010, 09:30  [ТС]     первый пробел в строке #7
cgfcb,j помогло.

Добавлено через 2 часа 40 минут
Цитата Сообщение от Voron8 Посмотреть сообщение
cnhjrf 53
C++
1
if(buffer[i] == ' ' && buffer[i-1] != ' '&& i!=0)
Добавлено через 3 минуты
хотя первое условие (buffer[i] == ' ') лишнее
если его не будет, тогда пробелы будут ставится после каждого символа, а так только один пробел в нужном месте.
Yandex
Объявления
02.04.2010, 09:30     первый пробел в строке
Ответ Создать тему
Опции темы

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