#include <stdio.h>
#include<ctype.h>
main()
{char a[100];
char *px;
int i,b,c,d,e;
i = 0; b = 0; c = 0; d = 0; e = 0;
scanf("%s", a);
  px = &a[i];
for(px=a; *px != '\0'; px++){
for(i=0; a[i] != '\0'; i++){
if (a[i] = isupper(a[i]))
b++;
else if(a[i] = islower(a[i]))
c++;
else if(a[i] = isdigit(a[i]))
d++;
else
e++; }}
   printf("ALPHABET = %d\n", b);
printf("alphabet = %d\n", c);
printf("numeral = %d\n", d);
printf("others = %d\n", e);}
と作ってみてはいるんですが、コンパイルした結果を見る限り、
           else if(a[i] = islower(a[i]))
c++;
else if(a[i] = isdigit(a[i]))
d++;
の部分が作用されてないっぽいです。よろしくお願いします。