如题所述
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define M 1000
void getnumber(char a[],int b[],int *clen)
{
char c[M];
int i = 0;
int k = 0;
int num;
int len = 0;
int flag = 0;
char *p;
for(i = 0,p = a ; i<=strlen(a) ;p++,i++)
{
if(*p>='0' && *p <= '9')
{
len++;
flag = 1; //在数字字符里面
}
else if(flag == 1 )
{
strncpy(c,p-len,len);
c[len] = '\0';
num = atoi(c);//将字符串转化为数字
b[k++] = num; //用数组存放截取下来的数字
flag = 0;// 标识0代表进入了非数字字符
len = 0;
}
}
*clen = k;
}
void main (void)
{
char a[M];
int b[M];//用来存放从字符串截取下来的数字
int i = 0;
int k ;
printf("请输入带数字的字符串:");
gets(a);
getnumber(a,b,&k);
for(i = 0; i < k; i++)
printf("%d\n",b[i]);//将存好的数输出
}
温馨提示:答案为网友推荐,仅供参考