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

В строке заменить все запятые на точки, подсчитать количество замен - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать шаблон класса http://www.cyberforum.ru/cpp-beginners/thread1015155.html
Общая постановка. Дано: число N и последовательность a1, a2, … aN Создать шаблон класса, порождающего динамические одномерные массивы с элементами различных типов (вещественные, целочисленные,...
C++ Произведение квадратов компонент класса Создать в производном классе метод Run, определяющий: Произведение квадратов компонент класса http://www.cyberforum.ru/cpp-beginners/thread1015154.html
C++ Создать на форме чат, форум и интернет магазин
Задали создать, чат, форум и интернет магазин(. отдельные программы), на форме, с кнопочками, надписями местами для ввода данных, и для всего надо прописать действия. И как то оформить, что бы был не...
В матрице найти суму элементов в каждом столбце C++
В матрице найти суму элементов в каждом столбце. Результат записать в одноименный массив. Вывести начальную матрицу и полученный массив. Отредактируйте код #include <conio.h> #include...
C++ Разработать программу, которая формирует случайным образом вещественную матрицу размером n x m http://www.cyberforum.ru/cpp-beginners/thread1015134.html
Помогите пожалуйста!!! С++Builder. Разработать программу, которая формирует случайным образом вещественную матрицу размером n x m (n, m вводятся с клавиатуры), записывает ее в файл (имя файла...
C++ Округление значений в двумерной динамической матрице Как сделать так, чтобы при делении, вычитании и прочих действий между значениями двумерной матрицы - все они округлялись до 0.001? У меня почему-то вышла такая вещь, что при умножении 4*0,8 и всё это... подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1825 / 1183 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
22.11.2013, 10:06
Цитата Сообщение от gray_fox Посмотреть сообщение
как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <algorithm>
 
 
int main() {
   std::string string = ",.What, ., da,. heEAc,..,.k!?,";
 
   auto const commaCount = std::count(std::begin(string), std::end(string), ',');
   std::replace(std::begin(string), std::end(string), ',', '.');
 
   std::cout << string << std::endl;
   std::cout << commaCount << " comma(s) replaced with period(s)" << std::endl;
}
Компилится не будет, хотя бы потому что итераторы это методы строки.
В данном случае лучше использовать алгоритм for_each и воспользовоться тем фактом, что он возвращает свой функтор.
Кликните здесь для просмотра всего текста
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
31
32
33
34
35
#include<iostream>
#include<string>
#include<algorithm>
typedef std::string::size_type strSize;
class Counter {
    strSize count;
public:
    Counter(): count(0)
    {}
    void operator() (char& ch) {
        if (ch == ',') {
            ch = '.';
            ++count;
        }
    }
    strSize GetCount() {
        return count;
    }
};
int main()
{
    system("chcp 1251>0");
    std::string str("жил, был, еж, ");
    std::copy(str.begin(), str.end(), std::ostream_iterator<char>(std::cout));
    std::cout << std::endl;
 
    Counter result = std::for_each(str.begin(), str.end(), Counter());
    
    std::cout << "Количество замен:" << result.GetCount() << std::endl;
    std::copy(str.begin(), str.end(), std::ostream_iterator<char>(std::cout));
    std::cout << std::endl;
 
    system("pause");
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru