Я работаю над заданием для завершения функции bool isEven(char* s, char* v)
. Назначение функции - подсчитать вхождение определенных букв, указанных (обозначенных v
) в строку (обозначенных s
). s
и v
являются указателями на массивы, содержащие символы.
Функция возвращает true
, если число экземпляров букв из v
, найденных в s
, является четным. Например, учитывая строку "once upon a time"
и строку букв для подсчета, например, гласные, "aeiou"
, он вернет false
, потому что есть 7 гласных (гласные были только примером, это может быть любая случайная строка письма).
У меня есть переменная count
для подсчета случаев, когда любая буква в v
встречается в s
. Когда я запускаю свою программу, мой счет всегда возвращается как 0
. Что я делаю неправильно? Может кто-нибудь сказать мне, как исправить мой код, чтобы исправить это?
Я пробовал это также с вложенными циклами while
и получил то же самое.
bool isEven(char* s, char* v) {
int count = 0;
// iterate through de-referenced strings
for (int i = 0; *(s+i) != '\0'; i++) {
for (int j = 0; *(v+j) != '\0'; j++) {
if (*(s+i) == *(v+j)) {
count++;
}
}
}
// check count output
std::cout << count;
if (count % 2 == 0) {
return true;
}
else {
return false;
}
}