您的位置:首页 > 其它

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

2018-03-02 17:34 1651 查看

C程序设计(第四版) 谭浩强 习题8.16 个人设计

习题 8.16 输入一个字符串,内有数字和非数字字符,例如:

A123x456 17960? 302tab5876

将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]。。。。。。统计共有多少个整数,并输出这些数。

代码块:

#include <stdio.h>
#include <math.h>
void output(char *s, int n);            //定义输出函数
int main()
{
char str[30];
printf("Please enter string: ");    //输入字符串
gets(str);
output(str, 30);                    //调用输出函数
return 0;
}
//输出函数
void output(char *s, int n)
{
char *i;
int j, k, t, m, temp[10], num;
doub
4000
le sum, a[30];
for (i=s, num=0, j=0, m=0; i<s+n; i++)
if (*i>='0'&&*i<='9') num=1, temp[j++]=(int)(*i-'0');
else if (num){
for (num=0, k=0, sum=0, t=j-1; k<j; sum+=temp[k]*pow(10, t), t--, k++);
a[m++]=sum, j=0;
}
for(j=0, printf("There is %d number in the string.\nResult: ", m); j<m; printf("%.0f ", a[j++]));
printf("\n");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐