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

Нахождение и подсчет прописных букв - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа для вычисления логического выражения http://www.cyberforum.ru/cpp-beginners/thread54320.html
Люди добрые ПОМОГИТЕ ПОЖАЛУЙСТА решить задачу - ЗАВТРА СДАВАТЬ !!!! Условие: Разработать программу для вычисления логического выражения.Должно быть построено логическое выражение , результат...
C++ цикл на графах В заданном графе необходимо определить, существует ли цикл, проходящий по каждому ребру графа ровно один раз. Короче полная лажа......в решении предлагают использовать очередь для выяснения... http://www.cyberforum.ru/cpp-beginners/thread54318.html
Граф родственных отношений! C++
Есть такое задание: Разработать граф родственных отношений для классов, каждый из которых характеризует свой тип объекта. Каждый тип объектов характеризуется рядом признаков: 1-й тип -...
Вывод списка файлов и папок директории C++
Доброго времени суток! Помогите пожалуйста написать функцию, описанную ниже. Функция: Вход: строка(адрес) E:\Games\Distributives\ Выход: список файлов и папок в этой=E:\Games\Distributives\...
C++ динамические структуры http://www.cyberforum.ru/cpp-beginners/thread54285.html
Помогите поэжалуйста написать программу к завтрашнему дню,сам я в этой теме не шарю В составе программы описать функцию, которая заменяет в списке все вхождения элемента E1, значение которого...
C++ Можно ли задать размер строкового массива переменной Можно ли задать размер строкового массива переменной? Например считаю сколько слов в введенном предложении а затем создаю массив с количеством элементов равным n char s1; for (int... подробнее

Показать сообщение отдельно
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
05.10.2009, 21:02
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <string>
#include <algorithm>
#include <functional>
#include <iostream>
#include <ctype.h>
 
 
/*
Написать функцию, которая получает в качестве параметров две строки
и возвращает в вызывающую программу количество прописных букв,
одновременно содержащихся в заданных строках.
*/
 
template <typename T>
struct is_capital : public std::unary_function<typename T::value_type, bool>
{
    bool operator()(typename T::value_type v) const
    {
        return !!isupper(v);
    }
};
 
std::string f(const std::string& s)
{
    std::string tmp;
    std::remove_copy_if(s.begin(), s.end(), std::back_inserter(tmp), std::not1(is_capital<std::string>()));
    std::sort(tmp.begin(), tmp.end());
    tmp.erase(std::unique(tmp.begin(), tmp.end()), tmp.end());
    return tmp;
}
 
size_t num(const std::string& s1, const std::string& s2)
{
    const std::string tmp1 = f(s1);
    const std::string tmp2 = f(s2);
    std::string res;
 
    std::set_intersection(tmp1.begin(), tmp1.end(), tmp2.begin(), tmp2.end(), std::back_inserter(res));
    return res.size();
}
 
 
int main()
{
    std::cout << num("HELLO", "WORLD") << std::endl;
    std::cout << num("Hello", "World") << std::endl;
 
    return 0;
}
проверка: http://codepad.org/SqmLp22s
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.