您的位置:首页 > 其它

输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中。统计共有多少个整数,并输出这些数。

2013-10-16 09:41 1166 查看


#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>

int main(){
setvbuf(stdout,NULL,_IONBF,0);
char s[255];
int a[255];            //存放得到的整数
int i,length;
int f(char *s,int *a);

printf("Input the string:");
gets(s);
length=f(s,a);
printf("There are %d numbers.\n",length);
printf("They are:");
for(i=0;i<length;i++)
printf("%d ",a[i]);

return EXIT_SUCCESS;
}

int f(char *s,int *a){
char *p;
int t[255];                //存放一个整数的每位数
int len=strlen(s);
int flag=0;                //标记当前字符是否为0-9
int i=0,j;
int num=0;                //整数的个数
for(p=s;p<=s+len;p++)     //把最后的\0字符也当作非数字字符处理
{
if(*p>='0'&&*p<='9')
{
flag=1;
t[i++]=*p-'0';    //把字符'0'~'9'装换为数字0~9
}
else if(flag==1)     //如果当前字符非数字字符,且前一个字符为数字字符时,开始记录整数
{
a[num]=0;
for(j=0;j<i;j++)
a[num]=a[num]+t[j]*pow(10,i-1-j);

num++;
flag=0;
i=0;
}
}
return num;
}


[b]//如果使用VC,去掉第7行。[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐