Удаление гласных и специальных символов при использовании согласных с использованием рекурсии только в C ++ - PullRequest
1 голос
/ 25 февраля 2020

Я пытаюсь написать рекурсивную функцию, которая удаляет гласные, специальные символы и пробелы из фразы и использует прописные буквы. У меня проблемы с придумыванием чисто рекурсивной функции. Также не уверен, как цепочки функций в C ++. Можно ли использовать toUpperCase() и isalpha() вместе? Есть ли способ объединить два условия в предложениях else if и поместить их в предложение else?

bool isVowel(char ch) {

        if (ch == 'A' || ch == 'E' || ch == 'I' ||
            ch == 'O' || ch == 'U' || ch == 'Y') {
        return true;
    }
        else {
        return false;
    }
}

string onlyConnectize(string phrase) {        

        phrase = toUpperCase(phrase);

        // base case
        if (phrase.empty()) {
        return "";
    }
        else if (!isalpha(phrase[0])) {
        return "";
    }
        else if (isVowel(phrase[0])) {
        return "";
    }
        else {
        return phrase[0] + onlyConnectize(phrase.substr(1));
    }
}
...