#include <iostream>
#include <string>
#include <locale>
int vowel_count(const std::string& str) {
std::locale loc("ru_RU.UTF-8"
;
int count = 0;
for (char ch : str) {
if (std::isalpha(ch, loc)) {
char lowercaseCh = std::tolower(ch, loc);
if (lowercaseCh == 'а' || lowercaseCh == 'е' || lowercaseCh == 'ё' ||
lowercaseCh == 'и' || lowercaseCh == 'о' || lowercaseCh == 'у' ||
lowercaseCh == 'ы' || lowercaseCh == 'э' || lowercaseCh == 'ю' ||
lowercaseCh == 'я'
{
count++;
}
}
}
return count;
}
int main() {
std::string input_str;
std::cout << "Введите строку: ";
std::getline(std::cin, input_str);
int vowels = vowel_count(input_str);
std::cout << "Количество гласных букв в строке: " << vowels << std::endl;
return 0;
}
Эта программа включает функцию vowel_count(), которая принимает строку в качестве параметра и использует стандартную библиотеку C++ для подсчета количества русских гласных букв в строке. Функция также учитывает регистр символов.
Для решения задачи используется стандартная библиотека locale для работы с русскими символами. Функция isalpha() проверяет, является ли символ буквой, а функция tolower() приводит символ к нижнему регистру перед сравнением с гласными буквами русского алфавита.
В функции main() пользователю предлагается ввести строку, после чего программа вызывает функцию vowel_count() и выводит количество гласных букв введенной строки.