2016-04-03 13 views
1

私はstrtokを使用してすべてのカンマの後に一緒に文字を追加しようとしていますが、どこから始めたらいいのですか? inputStringの実際の値を格納する変数はどこですか? tok + = tok;本当に理にかなっているわけではありませんが、私は気にすることができます。私はまた、文字列をintに変換する別の関数を持っていますが、私はここでもそれを追加しますか?関数がchar strint(void)と呼ばれていると仮定します。strtokを使用して数値を加算する方法は?

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); 

    } 


} 

答えて

0

私はあなたがここで達成しようとしているものを完全にわからないんだけど、私はあなたがカンマで区切られた整数の間にいくつかの算術演算を行うにしようとしていると仮定します。

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

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

    return result; 
} 

このようにすることができます。私はそれをテストしなかったが、それは動作するはずです。

+0

yep!これは私が探していたものです。私はまだstrtokがどのように動作するかを100%確信していないので、何度も何度も見直す必要があります。 – ProgrammingNoob

関連する問題