Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
alya770
0 / 0 / 1
Регистрация: 10.12.2016
Сообщений: 36
1

Строковые функции

16.04.2017, 22:55. Просмотров 362. Ответов 3
Метки нет (Все метки)

Помогите, пожалуйста составить программу, которая в заданном тексте находит и переделывает фрагмент цена вида ХХ.УУ соотвественно в такую форму ХХ грн. УУ коп.
Я не пойму с чего начать ...
Нужно это сделать с помощью встроенных строкоых фукнций
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2017, 22:55
Ответы с готовыми решениями:

строковые функции на кодфорсесе
Доброго времени суток, Проблема такова: в xcode программа компилируется, а на кодфорсесе вот что...

Программа, строковые функции
Помогите, пожалуйста составить программу, которая в заданном тексте находит и переделывает фрагмент...

Строковые С++,неправильная работа функции
Доброго времени,не правильно работает функция zad2,огромная просьба помочь в решении!Заранее...

Строковые функции. Вставить текст внутри слова
В слове лирика после каждого слога вставить "ма". Нужно использовать строковые функции. Типа...

Двумерный массив. Программу написать используя указатели и строковые функции.
#include <iostream.h> int num (int **a, const int n, const int m); void sum (int **b, const int...

3
igorrr37
2036 / 1601 / 799
Регистрация: 21.12.2010
Сообщений: 2,751
Записей в блоге: 10
18.04.2017, 06:42 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <clocale>
#include <boost/regex.hpp>
 
int main()
{
    setlocale(LC_ALL, "rus");
    std::string str("цена одна 12.34 цена вторая 56.78");
    boost::regex reg("(\\d{2})\\.(\\d{2})");
    std::string str3 = boost::regex_replace(str, reg, [](boost::smatch const& res) {return res[1] + " грн. " + res[2] + " коп.";});
    std::cout << str3 << std::endl;
    return 0;
}
0
GbaLog-
Любитель чаепитий
3181 / 1484 / 470
Регистрация: 24.08.2014
Сообщений: 5,226
Записей в блоге: 1
Завершенные тесты: 2
18.04.2017, 06:46 3
igorrr37, а почему именно boost::regex?
есть же стандартный.
0
igorrr37
2036 / 1601 / 799
Регистрация: 21.12.2010
Сообщений: 2,751
Записей в блоге: 10
18.04.2017, 07:34 4
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
#include <iostream>
#include <string>
#include <cctype>
#include <clocale>
 
bool isDigit(char c)
{
    bool ret = false;
    if (c >= -1 && c <= 255)
    {
        ret = isdigit(c);
    }
    return ret;
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    std::string str("цена одна 12.34 цена вторая 56.78");
    for (int i = 0; i < str.size() - 4; ++i)
    {
        if (isDigit(str[i]) && isDigit(str[i + 1]) && str[i + 2] == '.' && isDigit(str[i + 3]) && isDigit(str[i + 4]))
        {
            str.insert(i + 5, " коп.");
            str.replace(i + 2, 1, " грн. ");
        }
    }
    std::cout << str << std::endl;
    return 0;
}
Добавлено через 3 минуты
GbaLog-, в 15-й студии regex_replace не принимает лямбду

Добавлено через 13 минут
хотя в std::regex можно и так
C++
1
std::string str3 = std::regex_replace(str, reg, "$1 грн. $2 коп.");

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

1
18.04.2017, 07:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2017, 07:34

строковые
Привет всем) Вот такая штука Написать программу, которая считывает английский текст из файла и...

C++ строковые
3 задача №1. Написать и протестировать функцию STRP(str1,str2), которая возвращает указатель на...

Строковые массивы
Приветствую, господа программисты! Не могу разобраться с функциями, в которых присутствуют строки,...


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

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

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