c语言数组编程存在疑问

vs用strlwr会报错如何解决?
if (ch[i] == 'a' || ch[i] == 'e' || ch[i] = 'i' || ch[i] = 'o' || ch[i] = 'u')这句话报错是为啥?

#include
#include
int main()
{
    char ch[20];
    int count1=0, count2=0;
    gets_s(ch);
    strlwr(ch);
    for (int i = 0; i < strlen(ch); i++)
    {
        if (ch[i] >= '0' && ch[i] <= 9)
            count1++;
        if (ch[i] == 'a' || ch[i] == 'e' || ch[i] = 'i' || ch[i] = 'o' || ch[i] = 'u')
            count2++;
    }
    printf("%4d%4d", count1, count2);

}



题目是啥?ch[i] = 'i' || ch[i] = 'o' || ch[i] = 'u' 后面三个判断少写一个=吗

供参考:

#include <stdio.h>
#include <string.h>
int main()
{
    char ch[20];
    int count1 = 0, count2 = 0;
    gets_s(ch);
    strlwr(ch);
    for (int i = 0; i < strlen(ch); i++)
    {
        if (ch[i] >= '0' && ch[i] <= '9')//(ch[i] >= '0' && ch[i] <= 9)
            count1++;
        if (ch[i] == 'a' || ch[i] == 'e' || ch[i] == 'i' || ch[i] == 'o' || ch[i] == 'u')
            //(ch[i] == 'a' || ch[i] == 'e' || ch[i] = 'i' || ch[i] = 'o' || ch[i] = 'u')
            count2++;
    }
    printf("%4d%4d", count1, count2);
    return 0;
}