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

Заменить все пробелы на тире - C++

Восстановить пароль Регистрация
 
Kolbusdkiy
 Аватар для Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
12.04.2014, 18:39     Заменить все пробелы на тире #1
В заданной строке символов заменить все пробелы на тире, причем, если несколько пробелов идет подряд, то заменить их одним тире.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2014, 18:39     Заменить все пробелы на тире
Посмотрите здесь:

Нужно определить количество слов в строке. Заменить в ней все пробелы на табуляции C++
C++ Перед и после каждого тире в тексте поставить пробелы (строки).
Удалить все символы в строке, не являющиеся буквами и заменить множественные пробелы одним C++
C++ Дан текстовый файл. Заменить в нем все подряд идущие пробелы на один пробел.
C++ В списке символов заменить все запятые и точки с запятой на пробелы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
12.04.2014, 19:04     Заменить все пробелы на тире #2
C++
1
2
3
4
5
6
    std::string s = "qwerty   123 privet";
    std::stringstream ss(s);
 
    while (ss >> s) {
        std::cout << s << (ss.eof() ? "" : "-");
    }
Kolbusdkiy
 Аватар для Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
12.04.2014, 19:09  [ТС]     Заменить все пробелы на тире #3
OstapBender, можете объяснить принцип работы?
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
12.04.2014, 19:13     Заменить все пробелы на тире #4
Kolbusdkiy, тип stringstream это поток ввода-вывода связанный с конкретной строкой, и над ним можно выполнять те же операции, что и с обычными потоками ввода-вывода. на основе того факта, что при вводе (>>) данных, пробелы и еще некоторые символы игнорируются, и проверке, закончилось ли чтение из потока (eof) и написано решение.
Yandex
Объявления
12.04.2014, 19:13     Заменить все пробелы на тире
Ответ Создать тему
Опции темы

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