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

Задача по STL (В строке текста, все числа, встречающиеся перевернуть, оставив на месте) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задан массив целых чисел http://www.cyberforum.ru/cpp-beginners/thread896244.html
Задан массив Z(m) целых чисел. Упорядочить массив в порядке возрастания. Удалить из массива два последних простых числа. Прошу помощи в решении данной задачи. Добавлено через 1 час 52 минуты...
C++ Прочитать текст из файла, заменить в тексте все вхождения первого заданного слова на второе заданное слово Натолкнулся на такую вот задачу : Ввести с клавиатуры имя текстового файла и два произвольных слова. Прочитать текст из файла, заменить в тексте все вхождения первого заданного слова на второе... http://www.cyberforum.ru/cpp-beginners/thread896232.html
C++ Есть ли отрицательные элементы в указанной строке двумерного массива? Удалить строки, найти минимальный элемент
1.Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными элементами, удаленная строка заполняется 0 и...
C++ Перегрузка функций и операторов
Помогите пожалуйста написать программу Создать класс List - очередь. Определить операторы "+" – сложения списков, "-" – вычитание (как в множестве) как дружественные функции. Определить операторы...
C++ Структура (найти ошибку) http://www.cyberforum.ru/cpp-beginners/thread896209.html
#include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> #pragma argsused int main() { struct detal { int nomer; char nazv;
C++ Помгите найти ошибку Составить программу решения поставленной задачи: 1. Вычислить m значений функции f(x) на отрезке . Вычисление величины f(x) с оформить в виде функции. Аргументы и значения функций сохранить в... подробнее

Показать сообщение отдельно
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.06.2013, 19:06
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <algorithm>
void reverseNumbers(std::string &str)
{
    const char* digits = "1234567890";
    size_t beginPos = 0, nextPos = 0;
    if ((beginPos = str.find_first_not_of(digits)) != 0)
        std::reverse(str.begin(), str.begin() + beginPos);
    while((beginPos = str.find_first_not_of(digits, nextPos)) != std::string::npos)
    {
        if ((nextPos = str.find_first_not_of(digits, beginPos + 1)) == std::string::npos)
            nextPos = str.size();
        if ((nextPos - beginPos) > 1)
            std::reverse(str.begin() + (beginPos + 1), str.begin() + nextPos);
    } 
}
int main()
{
    std::string str = "123 KSC.s5456c.5sc5.352m3 .5s65dcd656 5"; 
    reverseNumbers(str);
    std::cout << str << std::endl;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru