如何使用strtok添加数字?

时间:2016-04-03 13:58:54

标签: c string int token strtok

我试图在使用strtok的每个逗号之后将字符加起来,但我不知道从哪里开始?哪里是存储inputString实际值的变量? tok + = tok;并不是真的有意义,但这就是我能想到的全部。我也有一个单独的函数将字符串转换为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);

    }


}

1 个答案:

答案 0 :(得分:0)

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

int addtotal(void)
{
    int result;
    ...
    tok = strtok(inputString, com);

    for (result = 0; tok != NULL; )
    {
        result += atoi(tok);
        tok = strtok(NULL, com);
    }

    return result;
}

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