问题描述如上所述:
代码如下:
#include <stdio.h>
int main()
{
int i=0,k,m=0,t,r;
char a[300];
int b[50];
for(r=0;r<300;r++)
a[r]=0;
fgets(a,300,stdin);
while(m<300)
{
k=0;
t=0;
while((a[i]>='0'&&a[i]<='9')||a[i]=='-')
{
if(a[i]=='-')
{
while(a[i]=='-')
{
i++;
}
b[0]='-';
k=1;
if(a[i]>='0'&&a[i]<='9')
printf("-");
while(a[i]>='0'&&a[i]<='9')
{
b[k]=a[i];
printf("%d",b[k]-'0');
k++;
i++;
t=i;
}
if(k>1)
printf(" ");
}
if(a[i]>='0'&&a[i]<='9')
{
while( a[i]>='0'&&a[i]<='9')
{
b[k]=a[i];
k++;
i++;
t=i;
}
k=0;
if(b[0]!='0')
{
while(k<t&&b[k]>0)
{
printf("%d",b[k]-'0');
k++;
}
printf(" ");
}
if(b[0]=='0')
{
while(b[k]=='0')
{
k++;
}
while(k<t&&b[k]>0)
{
printf("%d",b[k]-'0');
k++;
}
printf(" ");
}
}
}
for(t=0;t<50;t++)
b[t]=0;
i++;
m=i;
m++;
}
}
上述代码成功分离出数字。