Итак, я написал базовую программу, которая проверяет строчные гласные в строке и отображает, сколько ее найдено.islower() работает с оператором! = Operator, но не ==
Я использовал это в первый:
for (char ch : str)
{
if (islower(ch) == true && isVowel(ch) == true) //isVowel is a function that
strCount++; //I made
}
И моя программа не будет увеличивать счетчик, но когда я изменил его на это:
for (char ch : str)
{
if (islower(ch) != false && isVowel(ch) == true)
strCount++;
}
Он начал работать сразу. Зачем? Не
if (islower(ch) != false)
и
if (islower(ch) == true)
сделать то же самое?
Try и выйти из привычки сравнения явно с 'true' - как вы уже видели, это может быть опасно. Вы должны использовать только, например. 'if (condition)', а не 'if (condition == true)'. –