我正在编写以下程序,从文件中读取一些文本。然后我想把这个文本分成几个空格。我使用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);
}
}
答案 0 :(得分:5)
您忘记将稍后调用的结果分配给strtok()。他们应该看起来像:
tok = strtok(NULL, " ");
答案 1 :(得分:-2)
int decoder(char *buffer)
{
int reg_1 = 0;
int reg_2 = 0;
char *tok = strtok(buffer, " ");
if(strcmp(tok,"ADD") == 0)
{
puts(tok);
tok=strtok(NULL, " ");
}
}
必须将strtok()
返回的指针分配给tok