马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
/************************************************************************
输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876
将其中连续的数字作为一个整数,依次存放到一数组 a 中,例如,123 放在 a[0],
456 放到 a[1]……统计共有多少个整数,并输出这些数。
**************************************************************************/
#if(1)
#include <stdio.h>
#include <math.h>
int main()
{
int i=0,n=0,j=0,m=0,k,y;
int in[10],temp=0,a[50]={0};
char *p,car[100];
printf("请输入一个字符串:");
gets(car);
p=car;
for (;;j=0)
{
if (*(p+i)=='\0')
{
break;
}
for(;i<1000;i++)
{
if(*(p+i)>=48 && *(p+i)<=57 && *(p+i+1)>=48 && *(p+i+1)<=57
|| *(p+i)>=48 && *(p+i)<=57 && *(p+i-1)>=48 && *(p+i-1)<=57 ) //二个以上连续数字
{
in[j]=(*(p+i))-48; // 字符ASCII码转十进制
j++; //j 用于统计每个整数的长度
}
if(!(48<=*(p+i) && *(p+i)<=57)) // 字符不属于0-9
{
i++;
break;
}
}
if(j>1)
{
y=j; //循环次数
for(j=0,k=y-1;j<y;j++,k--) //把几个数连起来,变成一个整数
{
temp+=in[j] * pow(10,k);
}
a[n]=temp;
temp=0;
n++;
}
}
for(i=0;i<n;i++)
{
printf("a[%d]=%d\n",i,a[i]);
}
printf("\n");
return 0;
}
#endif
|