将s1中的数字字符复制到s2中,代码有错,怎么改呢

#include
using namespace std;
#define M 8
void getDigits(chars1,chars2)
{
char a[M],b[M];
s1=a;
s2=b;
int i=0,j=0;
for(;i<M;i++,s1++)
{
if(*s1>=48&&*s1<=57)*s2++=*s1;
}
s2='\0';
}
int main()
{
int m,n;
char a[M]="as 12a3",b[M];
char
s1=a,*s2=b;
getDigits(s1,s2);
cout<<s2;
}