为什么这个代码的s1,s2都不加我输入字母 不服来辩

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
    for (int i = 0; i < 3; i++)
    {
        for (; j <strlen(a[i]); j++)
        {
            if (a[i][j] >= '65' && a[i][j] <= '90') { s1++; }
            else if (a[i][j] >= '97' && a[i][j] <= '122') { s2++; }
            else if (isdigit((int)a[i] != 0)) { s3++; }
            else if (a[i][j] == ' ') { s4++; }
            else if(ispunct((int)a[i]!=0)) { s5++; }

        }
        j = 0;
    }

我的解答思路和尝试过的方法
我想要达到的结果

永远都不会加。要么'字母'要么直接数字。