输入一个字符串,内有数字和非数字字符,如
A123x456 17966@fd4567
将其中连续的数字作为一个整数,依次存放在一个数组a中,例如123存到a[0],456存到a[1]。统计共存了多少整数,并输出这些数。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAXSIZE 100 /*如果位数不够就要动态分配内存了*/
int main()
{
char * str = "A123x456 17966@fd4567...";
int size ,i,j=0;
char ch[MAXSIZE],temp[MAXSIZE] ;
for(i=0;i<MAXSIZE;i++)
{
ch[i] = ' ';
temp[i] = ' ';
}
size = strlen(str); /*可以在这用if(size>MXASIZE)判定,执行动态分配realloc(temp,size)*/
strcpy(temp,str);
for(i=0;i<=size;i++)
{
ch[j] = temp[i];
if(ch[j] >='0'&&ch[j]<='9')
j++;
else
{
j =0;
if(0 != atoi(ch)) /*在stdlib.h中 将字符串转换成整数*/
printf("%d\t",atoi(ch));
}
}
return 0;
}
希望对你有帮助!
简单的问题也有更好的办法、