strtok不断回复同一个词

srg*_*ent 2 c

我正在编写以下程序,从文件中读取一些文本.然后我想把这个文本分成几个空格.我曾经strtok(buffer, " ")在空间之前得到缓冲区的第一个字.那部分工作正常.然而,在我使用之后,strtok(NULL, " ")我得到了相同的第一个单词.我期待着回到下一个词.在将数组传递给声明如下的函数char* buffer[BUFFER_SIZE]:

int decoder(char *buffer)
{
    int reg_1 = 0;
    int reg_2 = 0;

    char *tok = strtok(buffer, " "); 

    if(strcmp(tok,"ADD") == 0)
    {
        strtok(NULL, " ");
        puts(tok);

        strtok(NULL, " ");
        puts(tok);
    }            
}
Run Code Online (Sandbox Code Playgroud)

小智 5

您忘记将稍后调用的结果分配给strtok().他们应该看起来像:

tok = strtok(NULL, " ");
Run Code Online (Sandbox Code Playgroud)