求指导c语言编程问题。

求大神c语言题目是提取字母
如输入
2
abc1abc
abc@@abc
输出
abc
abc

abc
abc
我现在就是输出后面有很多烫字加上\0也没用,求教
#include
#include
void fun(char *a)
{
int i,j,k=0,m=0;
char b[100][100];
for(i=0;a[i]!='\0';i++)
{
if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
{ b[k][m]=a[i];
m++;
}
else{k++;m=0;b[k][0]='1';}
}
for(j=0;j<=k;j++)
{
if(b[j][0]!='1')
{ puts(b[j]);
printf("\n");}
}
printf("\n");
}

int main()
{
int n,i;
char a[100][100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",a[i]);
}
for(i=0;i<n;i++)
{
fun(a[i]);
}
return 0;
}

#include
#include

int main()
{
char s[555555];
int n,i,len,f=0;
scanf("%d\n",&n);
while (n--)
{
gets(s);
for (i=0; s[i]!=0; i++)
{
if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))
{
f=1;
printf("%c",s[i]);
}
else if (f==1)
{
f=0;
printf("\n");
}
}
printf("\n");
}
return 0;
}

路子有点野,不过我看样列这样做应该对;;;

不知道在CSDN中提问的程序能不能写的有点层次感呢,看着好难受。

 //改为:  char b[100][100]={'\0'};

你那个应该是a【i】【j】