在字符串中取连续整数存储到另一数组中并输出。
题目要求是在一个字符串中,将连续的数字作为一个整数,存放到一个数组中 然后输出,并且统计个数。 以下程序问题在第3个数字的时候出错 了 求大牛 指点。。。
#include<stdio.h>
void main()
{
char str[]="234a231b2ac234";
char *pstr;
int a[10],i,j,k,ndigit,digit,e10;
int *pa;
pstr=str;
pa=a;
i=j=0;
ndigit=0;
while(*(pstr+i)!='\0')
{
if(*(pstr+i)>'0'&&*(pstr+i)<'9')
j++;
else
{
if(j>1)
{
digit=*(pstr+i-1)-48;
e10=1;
for(k=1;k<j;k++)
{
e10*=10;
digit+=(*(pstr+i-1-k)-48)*e10;
}
*pa=digit;
ndigit++;
pa++;
j=0;
}
}
i++;
}
if(j>1)
{
digit=*(pstr+i-1)-48;
k=1;
while(k<j)
{
e10=1;
for(k=1;k<j;k++)
{
e10*=10;
digit+=(*(pstr+i-1-k)-48)*e10;
}
}
*pa=digit;
ndigit++;
pa++;
}
printf("ndigit=%d\n",ndigit);
pa=a;
for(j=0;j<ndigit;j++)
printf("%-5d",*(pa+j));
}
求高手指点错误在哪里......