Вот пример программы на C++, которая принимает на вход строку и подсчитывает количество гласных, цифр и пробелов:
#include <iostream>
#include <cctype>
int main() {
std::string str;
std::cout << "Enter a string: ";
std::getline(std::cin, str);
int vowelCount = 0;
int digitCount = 0;
int spaceCount = 0;
for (char c : str) {
if (std::isalpha(c)) {
char lowercaseC = std::tolower(c);
if (lowercaseC == 'a' || lowercaseC == 'e' || lowercaseC == 'i' ||
lowercaseC == 'o' || lowercaseC == 'u') {
vowelCount++;
}
} else if (std::isdigit(c)) {
digitCount++;
} else if (std::isspace(c)) {
spaceCount++;
}
}
std::cout << "Number of vowels: " << vowelCount << std::endl;
std::cout << "Number of digits: " << digitCount << std::endl;
std::cout << "Number of white spaces: " << spaceCount << std::endl;
return 0;
}
В этой программе мы используем цикл для перебора каждого символа во входной строке. Затем мы проверяем, является ли символ гласной, цифрой или пробелом, используя функции std::isalpha(), std::isdigit()и . std::isspace()соответственно. Счетчики соответственно увеличиваются.
Вот несколько альтернативных методов расчета:
-
Регулярные выражения. Вы можете использовать регулярные выражения для сопоставления гласных, цифр и пробелов в строке и подсчета совпадений.
-
Алгоритмический подсчет. Вы можете использовать такие алгоритмы, как
std::count_if(), и предоставлять соответствующие предикаты для подсчета гласных, цифр и пробелов. -
Оператор Switch: вместо использования нескольких операторов
ifвы можете использовать операторswitchдля проверки каждого символа и увеличения соответствующего счетчика.