profile
Размещено 5 лет назад по предмету Информатика от AlexTarakanova

Задана строка. Напечатать слова строки, которые начинаются с гласной буквы и указать их количество. С++

  1. Ответ на вопрос
    Ответ на вопрос дан ShredingerCat
    #include <iostream>
    #include <vector>
    #include <boost/algorithm/string.hpp>

    using namespace std;


    class FindVowelWords{
        vector<string> input;  // тут будут лежать слова для обработки
        vector<string> output; // тут будут лежать обработанные слова
        vector<char> vowels;  // а тут глассные буквы

    public:
        // ...
        FindVowelWords(const string& inputStr){
            vowels = {'a', 'A', 'o', 'O', 'i', 'I', 'u', 'U', 'e', 'E'}; // определяем вектор с гласнымы
            boost::split(input, inputStr, [](char c){return c == ' ';}); // разбиваем воходную строку на слова
        }

        // поиск слов, которые начинаются с гласных
        void handle(){
            for(auto const& word : input){ // проходимся по всем словам
                for(auto const& vowel : vowels){ // проходимся по всем гласным
                    if(word.at(0) == vowel){
                        output.push_back(word); // если первая буква слова - гласная, то заносим слово в результирующий вектор
                    }
                }
            }
        }

        // вывод результата
        void printOutput() const{
            for(auto const& item : output){
                cout << item << endl;
            }
        }
        // вывод входных данных
        void printInput(){
            for(auto const& item : input){
                cout << item << ' ';
            }
        }

        int getOutputSize(){
            return output.size();
        }

    };


    int main(){
        string test = "Don't be arfraid, just try to understand this code and you'll be a good programmer!";
        FindVowelWords findIt(test);
        cout << "You have entered this string: " << endl;
        findIt.printInput();
        cout << endl << endl;

        findIt.handle();
        cout << "Words that begin with a vowel: " << endl;
        findIt.printOutput();
        cout << endl;
        cout << "number of words have been found: " << findIt.getOutputSize() << endl;
        return 0;
    }

    1. Ответ на вопрос
      Ответ на вопрос дан ShredingerCat
      добавил пример вывода. Если есть вопросы, то постараюсь подсказать
    2. Ответ на вопрос
      Ответ на вопрос дан AlexTarakanova
      не подскажете, почему С++ Builder ругается на последнюю библиотеку?
    3. Ответ на вопрос
      Ответ на вопрос дан ShredingerCat
      Библиотека Boost не входит в набор стандартных, поэтому ее надо ставить отдельно
    4. Ответ на вопрос
      Ответ на вопрос дан ShredingerCat
      Ее можно скачать с офф сайта, а потом скомпилировать. Однако вам может подойти другой вариант (вбивайте в ютубе эту строчку - Installing and Using the C++ Boost Library in C++Builder), там это делается в пару кликов.
    5. Ответ на вопрос
      Ответ на вопрос дан AlexTarakanova
      Спасибо большое
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.