输出字符串中的连续的数字,输入的串长一点..就报错
如:串中有: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()接收字符串时自己会加上去的
----------------解决方案--------------------------------------------------------
输入的串长一点..就报错
长一点````是个什么常法```
这个题应该不是很难吧``为什么要写得这么大呢``
----------------解决方案--------------------------------------------------------