为什么 输出结果多了一组数据 ?
#include <stdio.h>// 示例:指向10个元素的数组指针做参数 2007.11.21
void process(char *p,int (*q)[10])
{
char *m;
int (*n)[10];
m=p;
n=q;
int row = 0,frag = 0,i,j,c ;
for(i=0;*(p+i)!='0';i++)
{
if(*(p+i)>=48&&*(p+i)<=57)
{
frag=1;
j=0; //首个数字
while(frag==1)
{
if(*(p+i)>=48&&*(p+i)<=57)
{
i++; j++;
}
else
{
frag=0 ;
if(j>1) // j>1 表明只输出连续个数超过1个个数
{
printf("row(%3d):",row);
for(c=0; c<j; c++)
{
*(*(n+row)+c)=*(p-j+i+c);
printf("%3d", (*(*(n+row)+c)-48) );
}
printf("\t");
row++ ;
}
}
}
}
}
printf("\nthe total rows is %3d\n",row);
}
我使用上面的程序重一个字符串中提取数字子串
下面代码提供测试:
void main()
{
int a[8][10];
char *numbers="a123*456 17960?302ta1b5897dakda";
printf("%s\n",numbers);
process(numbers,a);
}
但是输出结果最后怎么多了一组数据 ??
不知道这个莫名其妙的 386 从哪里来的 ??