牛骨文教育服务平台(让学习变的简单)
博文笔记
  • 当前位置:
  • 牛骨文教育服务平台
  • >
  • 博文笔记
  • >
  • 习题 8.16 输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中。统计共有多少个整数,并输出这些数。

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

创建时间:2018-03-02 投稿人: 浏览次数:1363

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;
    double 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.
Result: ", m); j<m; printf("%.0f ", a[j++]));
    printf("
");
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。