2013-12-15 8 views
-4

Мне нужно подсчитать гласные в тексте на C++. У меня есть этот пример кода на PHP, который это делает - есть ли простой способ реализовать это на C++?Подсчет гласных в строке в C++

<?php 
$text = 'Sample Text'; 
echo strlen(preg_replace('/[^aeiouy]/i','',$text)); 
?> 

Обратите внимание, что я новичок здесь и буду благодарен за быстрый ответ. Благодарю.

+0

«моему другу нужно это сегодня вечером» ... э-э, твой друг, конечно ... Мог бы лучше замаскировать свою домашнюю работу. –

ответ

3

Вот очевидный код:

std::string const vs("aeiouAEIOU"); 
int count = std::count_if(text.begin(), text.end(), 
    [&](char c){ return vs.end() != std::find(vs.begin(), vs.end(), c); }); 
+0

Хорошее использование современных функций языка. Тем не менее, он будет выбирать только нижние строчные гласные, тогда как исходный фрагмент PHP не зависит от регистра. –

+0

@ PeterR.Bloomfield: достаточно справедливо - я совершенно не обращаю внимания на PHP (хотя я должен был поднять регулярное выражение ...). Я использовал низкотехнологичное исправление. –

0

Самый простой подход должен был бы написать for петлю, которая проходит через каждый символ в строке. На каждой итерации проверьте, является ли текущий символ гласным (предположительно верхний или нижний регистр). Если да, увеличьте счетчик.

Смежные вопросы