当前位置: 代码迷 >> C语言 >> 输出字符串中的连续的数字,输入的串长一点..就报错
  详细解决方案

输出字符串中的连续的数字,输入的串长一点..就报错

热度:176   发布时间:2008-04-15 00:30:04.0
输出字符串中的连续的数字,输入的串长一点..就报错
如:串中有:skfjke1232sese21fe  则输出1232  21
程序代码:

#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#define M 10
int * s()
{    
    return (int *)malloc(sizeof(int)*M);
}

int *se(char *t,int *b)
{
    int *num,k;
    char *p=t;
    num=s();
    for(;*p!='\0';p++)
    {
        k=1;
        num[*b]=0;
        if(*p>='0'&&*p<='9')
        {
            
            for(;*p>='0'&&*p<='9';p++)
            {            
                num[*b]=num[*b]*k+(*p-'0');
                k=10;                            
            }
            (*b)++;
        }
    }
        
    return num;
}

int main()
{
    char sk[M];
    int i,*n,c=0;
    printf("请入字符串");
    gets(sk);
    n=se(sk,&c);    
    for(i=0;i<c;i++)
        printf("%-5d",n[i]);
    getch();
    return 0;
}
            


[[it] 本帖最后由 bianfeng 于 2008-4-15 00:47 编辑 [/it]]
搜索更多相关的解决方案: 数字  字符  输出  输入  

----------------解决方案--------------------------------------------------------
已经解决..不知道为什么开辟的指针数组短了就报错呢...
----------------解决方案--------------------------------------------------------
没有看代码,不知你是否有考虑字符串的终止符'\0'呢?
----------------解决方案--------------------------------------------------------
有考虑..gets()接收字符串时自己会加上去的
----------------解决方案--------------------------------------------------------
输入的串长一点..就报错

长一点````是个什么常法```

这个题应该不是很难吧``为什么要写得这么大呢``
----------------解决方案--------------------------------------------------------
  相关解决方案