各位帮忙看下,写的一段分离一段字符串中的数字、字母、其他字符的程序,哪里出错了?
#include <stdio.h>main(void)
{
int i,j,x,y,p=-1,q=-1,r=-1;
char a[]="sjda43hjg5773783jbsagojuio44680357G902GJDSJS08979//,,,tggg.,.,./\=-09!@@#$%^&*()_+_)(*&^%$##@!UHUDGSUIGIU";
j=sizeof(a);
char b[j],c[j],d[j];
for(i=0;i<=j;i++)
{
if(a[i]>='0'&&a[i]<='9') b[p++]=a[i];
else if(a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z') c[q++]=a[i];
else if(1) d[r++]=a[i];
}
printf("%s\n%s\n%s\n",b,c,d);
}