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

Удалить все лишние пробелы - C++

Восстановить пароль Регистрация
 
S_O_A_D
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 48
14.06.2013, 19: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
#include <iostream> 
#include <string> 
 
using namespace std; 
 
 
int main() 
{ 
    string s;
    getline(cin,s);
    
    for(;s[0] == ' ' || s[s.length()-1] == ' ';){
        if(s[0] == ' ')
            s.erase(0,1);
        if(s[s.length()-1] == ' ')
            s.erase(s.length()-1,1);
    }
    int pos = 0;
    for (; s.find(" ",pos) != string::npos ;){
        if(s.find(" ",pos) != string::npos && s[s.find(" ",pos) + 1] == ' '){
            s.erase(s.find(" "),1);
        }else{
            pos = s.find(" ",pos) + 1;
        }
    }
 
    cout<<s;
    
    system("pause");
    return 0; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 19:56     Удалить все лишние пробелы
Посмотрите здесь:

В символьной строке удалить все лишние подряд идущие пробелы. C++
В символьной строке удалить все лишние подряд идущие пробелы. C++
Удалить из файла все лишние пробелы C++
C++ Работа с файлами. Удалить все лишние пробелы, оставив между словами не более одного пробела
Удалить лишние пробелы C++
Удалить из файла все однобуквенные слова и лишние пробелы. Результат записать в файл g C++
C++ Дана строка. Удалить из нее все лишние пробелы
Задан текст, удалить в нём все лишние пробелы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.06.2013, 20:11     Удалить все лишние пробелы #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>     
#include <sstream>      
#include <string>       
#include <iterator>
#include <algorithm>
 
int main () 
{
 
  std::string string = "11 111   11  11";
  std::istringstream iss (string);
 
  std::copy(std::istream_iterator<std::string>(iss), 
      std::istream_iterator<std::string>(), std::ostream_iterator<std::string>(
      std::cout, " "));
  std::cout << std::endl;
 
  return 0;
}
http://ideone.com/L9W3U2
Код
11 111 11 11
S_O_A_D
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 48
14.06.2013, 20:15  [ТС]     Удалить все лишние пробелы #3
go, Спасибо за ваш код, но мне хотелось бы узнать, что в моем коде не так?
Yandex
Объявления
14.06.2013, 20:15     Удалить все лишние пробелы
Ответ Создать тему
Опции темы

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