Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
GetHelp
61 / 62 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
1

Удалить все пробелы в строке

02.08.2014, 08:41. Просмотров 2139. Ответов 5
Метки нет (Все метки)

можно ли как то с помощью метода string.replace удалить все пробелы в строке? вот так не работает
C++
1
2
string str("this is test string");
str.replace(" ", "");
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2014, 08:41
Ответы с готовыми решениями:

Удалить в строке все лишние пробелы, то есть серии подряд идущих пробелов заменить на одиночные пробелы
Я уже решал эту задачу с помощью циклов и символьных массивов, и выкладывал на этот форум , но я не...

Удалить все латинские буквы в строке, удалить все пробелы, вывести сумму чисел
Удалить все латинские буквы в строке, удалить все пробелы, вывести сумму чисел. Прошу помочь я не...

В данной строке удалить все пробелы.
Дана строка. В данной строке удалить все пробелы.

Как удалить все числа и пробелы в строке?
Пробелы удаляются, а из цифр удаляется только часть. string line; getline(text, line);...

В символьной строке удалить все лишние подряд идущие пробелы.
Помогите пожалуйста написать программу,Каким образом можно осуществить: В символьной строке удалить...

5
gray_fox
What a waste!
1561 / 1265 / 168
Регистрация: 21.04.2012
Сообщений: 2,649
Завершенные тесты: 3
02.08.2014, 08:50 2
Лучший ответ Сообщение было отмечено GetHelp как решение

Решение

GetHelp, используй std::string::erase и std::remove:
C++
1
str.erase(std::remove(str.begin(), str.end(), ' '), str.end());
Добавлено через 2 минуты
Цитата Сообщение от GetHelp Посмотреть сообщение
вот так не работает
И не должно, посмотри прототипы этого метода, здесь например.
1
GetHelp
61 / 62 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
02.08.2014, 08:53  [ТС] 3
gray_fox,
error C2660: remove: функция не принимает 3 аргументов
отсутствуют экземпляры перегруженная функция "std::basic_string<_Elem, _Traits, _Alloc>::erase [с _Elem=char, _Traits=std::char_traits<char>, _Alloc=std::allocator<char>]", соответствующие списку аргументов типы аргументов: (int, std::_String_iterator<std::_String_val<std::_Simple_types<char>>>) тип объекта: std::string
не существует подходящей функции преобразования из "std::_String_iterator<std::_String_val<std::_Simple_types<char>>>" в "const char *"
0
gray_fox
What a waste!
1561 / 1265 / 168
Регистрация: 21.04.2012
Сообщений: 2,649
Завершенные тесты: 3
02.08.2014, 08:59 4
GetHelp, http://ideone.com/GyNXmN
2
GetHelp
61 / 62 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
02.08.2014, 09:01  [ТС] 5
gray_fox, не знал что алгоритм надо инклудить спс
0
gray_fox
What a waste!
1561 / 1265 / 168
Регистрация: 21.04.2012
Сообщений: 2,649
Завершенные тесты: 3
02.08.2014, 09:26 6
GetHelp, вообще erase возможно использовать не обязательно. erase удаляет элементы из контейнера. Пусть r - результат remove. remove перераспределит элементы так, что в первой половине ( [begin; r) ) находится результат, во второй ( [r; end) ) - остальные элементы в неопределённом порядке. Если не предполагается дальше использовать объект std::string (например надо просто вывести в консоль результат), то можно просто использовать последовательность [begin; r) без вызова erase.

Добавлено через 4 минуты
Например http://ideone.com/mndGIR

Добавлено через 10 минут
Цитата Сообщение от gray_fox Посмотреть сообщение
во второй ( [r; end) ) - остальные элементы в неопределённом порядке.
Поправлюсь: они будут не в неопределённом порядке, а в неопределённом состоянии; суть в том, что remove не освобождает память, а только перераспределяет элементы последовательности; если надо так же освободить память, то надо так же использовать и erase.
0
02.08.2014, 09:26
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2014, 09:26

В символьной строке удалить все лишние подряд идущие пробелы.
помогите пожалуйста написать программу:В символьной строке удалить все лишние подряд идущие пробелы.

Удалить все символы в строке, не являющиеся буквами и заменить множественные пробелы одним
Ребята,буду запредельно благодарен.

Удалить лишние пробелы в строке
удаление лишних пробелов в тексте


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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