统计一串字符串中各字符类型个数,输出值为空

#include<stdio.h>
int main()
{
char a[200],b=0,c=0,d=0,e=0,i=0;
gets(a);
while(i<strlen(a[200]))
{
if(a[i]>=65&&a[i]<=90)
b++;
else if(a[i]>=97&&a[i]<=122)
c++;
else if(a[i]>=48&&a[i]<=57)
d++;
else
e++;
i++;
}
printf("%d %d %d %d",b,c,d,e);
return 0;
}