Я пытаюсь написать рекурсивную функцию, которая удаляет гласные, специальные символы и пробелы из фразы и использует прописные буквы. У меня проблемы с придумыванием чисто рекурсивной функции. Также не уверен, как цепочки функций в 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));
}
}