Подсчитайте количество гласных букв в веденной пользователем строке. Для подсчета используйте 4 способа:
– count_if и find
– count_if и цикл for
– цикл for и find
– 2 цикла for
cpp
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string str;
std::cout << "Введите строку: ";
std::getline(std::cin, str);
int count = std::count_if(str.begin(), str.end(), [](char c) {
return std::string("aeiouAEIOU").find(c) != std::string::npos;
});
std::cout << "Количество гласных букв: " << count << std::endl;
return 0;
}
В этом примере мы считываем строку, затем используем функцию count_if, чтобы подсчитать количество элементов, удовлетворяющих условию, заданному в лямбда-функции. В данном случае лямбда-функция проверяет наличие символа в строке "aeiouAEIOU" с помощью функции find. Если символ найден, функция find возвращает позицию символа в строке, отличную от npos, и count_if увеличивает счетчик count на 1. В конце выводим значение count.
2.Способ 2: count_if и цикл for
Второй способ аналогичен первому, но вместо функции find мы используем цикл for для проверки каждого символа строки на гласность.
cpp
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string str;
std::cout << "Введите строку: ";
std::getline(std::cin, str);
int count = std::count_if(str.begin(), str.end(), [](char c) {
char vowels[] = "aeiouAEIOU";
for (int i = 0; i < sizeof(vowels); i++) {
if (c == vowels[i]) {
return true;
}
}
return false;
});
std::cout << "Количество гласных букв: " << count << std::endl;
return 0;
}
В этом примере мы определяем массив гласных букв и используем цикл for для проверки каждого символа строки на гласность. Если символ является гласной, лямбда-функция возвращает true и count_if увеличивает счетчик count на 1.
3.Способ 3: цикл for и find
Третий способ состоит в использовании цикла for для просмотра каждого символа строки и функции find для проверки наличия символа в строке гласных букв.
cpp
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string str;
std::cout << "Введите строку: ";
std::getline(std::cin, str);
int count = 0;
for (char c : str) {
if (std::string("aeiouAEIOU").find(c) != std::string::npos) {
count++;
}
}
std::cout << "Количество гласных букв: " << count << std::endl;
return 0;
}
В этом примере мы используем цикл for для итерации по каждому символу строки и функцию find для проверки наличия символа в строке гласных букв. Если символ найден, увеличиваем счетчик count на 1.
4.Способ 4: 2 цикла for
Четвертый способ предполагает использование двух вложенных циклов for для сравнения каждого символа строки с гласными буквами.
cpp
#include <iostream>
#include <string>
int main() {
std::string str;
std::cout << "Введите строку: ";
std::getline(std::cin, str);
int count = 0;
for (char c : str) {
for (char vowel : "aeiouAEIOU") {
if (c == vowel) {
count++;
break;
}
}
}
std::cout << "Количество гласных букв: " << count << std::endl;
return 0;
}
В этом примере мы используем два цикла for для сравнения каждого символа строки с гласными буквами. Если символ является гласной, увеличиваем счетчик count на 1 и выходим из внутреннего цикла.
Все 4 способа дают одинаковый результат, и выбор конкретного способа зависит от предпочтений программиста и контекста, в котором будет использоваться код.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет