【问题标题】:How to add up numbers using strtok?如何使用 strtok 将数字相加?
【发布时间】:2016-04-03 13:58:54
【问题描述】:

我正在尝试使用 strtok 将每个逗号后的字符加起来,但我不知道从哪里开始?存储 inputString 实际值的变量在哪里?托克+=托克;没有真正的意义,但这就是我能想到的atm。我还有一个单独的函数可以将字符串转换为 int,我也在这里添加它吗?假设函数被称为 char strint(void);

char addtotal (void)
{
    char inputString[LINE_LEN + EXTRA_SPACES];
    char *tok;
    char com[2] = ",";

    printf("Enter numbers to be tokenized using commas: \n");

    if (fgets(inputString, LINE_LEN + EXTRA_SPACES, stdin) == NULL)
    {
        printf("ERROR!\n\n");
        return EXIT_FAILURE;
    }

    if (inputString[strlen(inputString) - 1] != '\n')
    {
        printf("BUFFER OVERFLOW!\n\n");
        return EXIT_FAILURE;
    }

    inputString[strlen(inputString) - 1] = 0;

    tok = strtok(inputString, com);

    while(tok!=NULL)
    {

        printf("%s \n", tok);

        tok = strtok(NULL, com);

    }


}

【问题讨论】:

    标签: c string int token strtok


    【解决方案1】:

    我不完全确定您要在这里实现什么,但我假设您正在尝试在逗号分隔的整数之间进行一些算术运算。

    int addtotal(void)
    {
        int result;
        ...
        tok = strtok(inputString, com);
    
        for (result = 0; tok != NULL; )
        {
            result += atoi(tok);
            tok = strtok(NULL, com);
        }
    
        return result;
    }
    

    你可以这样做。我没有测试它,但它应该可以工作。

    【讨论】:

    • 是的!这就是我一直在寻找的。我仍然需要一遍又一遍地查看它,因为我仍然不能 100% 确定 strtok 是如何工作的。
    猜你喜欢
    • 1970-01-01
    • 2020-09-21
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    相关资源
    最近更新 更多