标题:为什么 输出结果多了一组数据 ?
只看楼主
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
 问题点数:0 回复次数:0 
为什么 输出结果多了一组数据 ?
#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 从哪里来的 ??

error.JPG (10.5 KB)
搜索更多相关主题的帖子: 分析 提取 子串 
2008-10-24 23:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-240418-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.112000 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved