首页
学习
活动
专区
圈层
工具
发布

查串和
EN

Stack Overflow用户
提问于 2016-06-20 23:15:04
回答 1查看 952关注 0票数 0

我必须编写一个函数来从字符串中找到数字的和。每一行的总金额都需要打印出来。我用strtok和token去掉逗号,然后atof将字符串转换为double。我很难把这些碎片连接起来。

代码语言:javascript
复制
#include <stdio.h>
int main(void) {
    int i;
    double sum=0;

    char* str[] = {"12, 34, 56, 78",
        "82.16, 41.296",
        "2, -3, 5, -7, 11, -13, 17, -19",
        "9.00009, 90.0009, 900.009, 9000.09, 90000.9"};

    for(i=0;i<(sizeof(str)/sizeof(*str));i++)
    {
        //print//
        printf("sum = %3.6f \n",sum);
    }
 }

double sum(char* s[])
{
    const char str[100];
    char *token;
    char *del = ", ";

    token = strtok(str, del);

    while( token != NULL )
    {
        token = strtok(NULL, del);
    }

    double atof( const char *s
    double n;
    double sum=0;
    for(n=0;n<str(s);n++)
    {
        sum = sum + s[n];
    }
    return (sum);
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 09:15:20

Ideone.com/3 3umold - BLUEPIXY

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

double sum(const char s[]);

int main(void) {
    int i;
    //double sum=0;

    char* str[] = {
        "12, 34, 56, 78",
        "82.16, 41.296",
        "2, -3, 5, -7, 11, -13, 17, -19",
        "9.00009, 90.0009, 900.009, 9000.09, 90000.9"
    };

    for(i = 0; i < sizeof(str)/sizeof(*str); i++){
        //print
        printf("sum = %f \n", sum(str[i]));
    }

    return 0;
}

double sum(const char s[]){
    char str[100];
    char *token, *del = ", ";
    double sum = 0.0;

    strcpy(str, s);
    token = strtok(str, del);

    while( token != NULL ){
        sum += atof(token);
        token = strtok(NULL, del);
    }
    return sum;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37933235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档