псевдокод:
count = 0
For each character c in string s
Check if c equals '_'
If yes, increase count
РЕДАКТИРОВАТЬ: C ++ пример кода:
int count_underscores(string s) {
int count = 0;
for (int i = 0; i < s.size(); i++)
if (s[i] == '_') count++;
return count;
}
Обратите внимание, что этот код используется вместе с std::string
, если вы используете char*
, замените s.size()
на strlen(s)
.
Также обратите внимание: я могу понять, что вы хотите что-то "как можно меньше", но я бы предложил вам использовать это решение вместо этого. Как видите, вы можете использовать функцию для инкапсуляции кода, чтобы вам не приходилось каждый раз записывать цикл for
, а можно просто использовать count_underscores("my_string_")
в остальной части кода. Использование передовых алгоритмов C ++ здесь, безусловно, возможно, но я думаю, что это излишне.