Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
GetHelp
-7 / 61 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
#1

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

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

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

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

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

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

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

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

Удалить лишние пробелы в строке - C++
Добрый день. Прошу написать простую программу по заданию: В строке, введённой с клавиатуры, удалить все лишние пробелы. На форуме...

5
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
02.08.2014, 08:50 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
GetHelp, используй std::string::erase и std::remove:
C++
1
str.erase(std::remove(str.begin(), str.end(), ' '), str.end());
Добавлено через 2 минуты
Цитата Сообщение от GetHelp Посмотреть сообщение
вот так не работает
И не должно, посмотри прототипы этого метода, здесь например.
0
GetHelp
-7 / 61 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
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!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
02.08.2014, 08:59 #4
GetHelp, http://ideone.com/GyNXmN
1
GetHelp
-7 / 61 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
02.08.2014, 09:01  [ТС] #5
gray_fox, не знал что алгоритм надо инклудить спс
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2014, 09:26
Привет! Вот еще темы с ответами:

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

Удалить все лишние пробелы - C++
В чем ошибка? #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string s;

Строки: удалить все пробелы - C++
Всем доброго времени суток. Я учусь на инженера-электрика и вообщем-то засел на задаче по программированию на С++. Буду весьма благодарен...

Строки. Удалить все пробелы - C++
Задание: Дана строка, в которой слова разделены одним пробелом и более. Удалить из нее все пробелы. #include &lt;iostream&gt; #include...


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

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

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