任务描述:输入一个字符串,内有数字字符和非数字字符,将其中连续的数字作为一个整数,将这些数存放在数组a中,统计一共有多少个数并输出
#include<stdio.h>
#define MaxSize 100
//输入一个字符串,内有数字字符和非数字字符,将其中连续的数字作为一个整数,将这些数存放在数组a中,统计一共有多少个数并输出
// a123x456 17960?302tab5876
int a[MaxSize];
void splitnum(char *str){
//返回值是一个数组,a[0]存放数组中数的个数,其余位置存放数
a[0] = 0;
//赋初始长度为0
char *p,num1[MaxSize];
p = str;
while(*p != '\0'){
while(!isdigit(*p)) p++;
//跳过非数字字符
int index = 0;
while(isdigit(*p)) num1[index++] = *(p++);
num1[index] = '\0';
//数字存放到num1中
a[++a[0]] = atoi(num1);
}
}
int main()
{
char str[MaxSize];
gets(str);
splitnum(str);
printf("Len:%d\n",a[0]);
for(int i=1;i<=a[0];i++){
printf("num:%4d\t",a[i]);
}
return 0;
}