при выводе количества гласных(count) выводится на 1 значение больше ,почему?
int main()
{
setlocale(LC_ALL, "Rus");
string nom1="EE aa JO";
string nom2 = "AEIJOUYaeiouyj";
int count =0;
nom1.erase(remove(nom1.begin(), nom1.end(), ' '), nom1.end());
for (int i = 0; i <= nom2.length(); i++)
{
for (int j = 0; j <= nom1.length(); j++)
{
if (tolower(nom1[j]) == nom2[i])
{
count++;
}
}
}
cout << nom1 << endl;
cout << count << endl;
return 0;
}
Ответы (1 шт):
Автор решения: Vladyslav
→ Ссылка
Проблема в вашем коде связана с тем, что в циклах Вы выходите за границы длины строк nom1 и nom2. Индексация в строках начинается с 0, поэтому в цикле for (int i = 0; i <= nom2.length(); i++) вы должны использовать условие < вместо <=, чтобы остановиться на последнем допустимом индексе.
То же самое относится и к циклу для nom1.