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

Напечатать в алфавитном порядке все гласные буквы, присутствуют в каждом слове - C++

Восстановить пароль Регистрация
 
Insane__
43 / 42 / 4
Регистрация: 10.09.2013
Сообщений: 292
14.12.2013, 20:48     Напечатать в алфавитном порядке все гласные буквы, присутствуют в каждом слове #1
Дано множество слов. Напечатать в алфавитном порядке все гласные буквы, присутствуют в каждом слове.
Здесь нужно сделать сечение всех слов во множественном. Помогите написать код.
Вот что я написал:
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
50
#include <iostream>
#include <vector>
#include <set>
#include <string>
#include <windows.h>
#include <algorithm>
 
using namespace std;
 
 
void print_vowels(set<string> s){
     vector<char> setIntersection;
     vector<char> vector1((s.begin())->begin(), (s.begin())->end());
     int i = 0,j = 0;
     for(set<string>::iterator it = s.begin(); it != s.end(); it++)
        {
                               if(j == 0){
                                    j++;
                                    continue;
                                    }
         vector<char> vector2(it->begin(), it->end());
         set_intersection(vector1.begin(), vector1.end(),vector2.begin(), vector2.end(), back_inserter(setIntersection));
         vector1.clear();
         for(i = 0; i < setIntersection.size(); i++){
             vector1.push_back(setIntersection[i]);
             }
         
        }
     for(i = 0; i < setIntersection.size(); i++){
             cout<<setIntersection[i];
     }
}
 
int main(){
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string names[5] = {"wadwad","afawd","esfad","sefsefg","segs"};
    set<string> set_names;
    for(int i = 0; i < 5; i++){
            cout << names[i] << endl;
    }
    for(int i = 0; i < 5; i++){
            set_names.insert(names[i]);
    }
    cout<<endl;
    print_vowels(set_names);
    cin.get();
    cin.get();
    return 0;
}
Добавлено через 1 час 49 минут
up.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2013, 20:48     Напечатать в алфавитном порядке все гласные буквы, присутствуют в каждом слове
Посмотрите здесь:

C++ Напечатать в алфавитном порядке все слова, которые начинаются с большой буквы
В каждом слове все буквы разместить в алфавитном порядке C++
Напечатать в алфавитном порядке все различные русские буквы , входящие в введенный текст C++
В каждом слове все буквы разместить в алфавитном порядке C++
C++ Напечатать в алфавитном порядке все согласные буквы, входящие в текст.
Напечатать в алфавитном порядке все согласные буквы, входящие в текст. C++
C++ Напечатать в алфавитном порядке все глухие согласные буквы
В заданной тексте определить все гласные буквы, встречающиеся в каждом слове C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
14.12.2013, 22:16     Напечатать в алфавитном порядке все гласные буквы, присутствуют в каждом слове #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Как вариант:
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
 
 
std::string common_vowels(std::vector<std::string> const& words) {
   std::string vowels = "aeiou";
   std::string::iterator last = std::end(vowels);
   
   for (auto word : words) {
      std::sort(std::begin(word), std::end(word));
      last = std::set_intersection(
            std::begin(vowels), last
          , std::begin(word),   std::end(word)
          , std::begin(vowels));
   }
   
   return {std::begin(vowels), last};
}
 
 
int main() {
   std::vector<std::string> const words = {"waiidwad", "afaiiwd", "esfiad", "sefasefgi", "siegsa"};
   
   std::string const vowels = common_vowels(words);
   
   std::cout << vowels << std::endl;
}
http://ideone.com/P43fRI
Yandex
Объявления
14.12.2013, 22:16     Напечатать в алфавитном порядке все гласные буквы, присутствуют в каждом слове
Ответ Создать тему
Опции темы

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