在C中获取一个特定的字符串标记

时间:2017-08-04 07:57:33

标签: c strtok

我的文件里面有文字(<tab>\t):

display <tab> output_stmt
[ <tab> left_bracket
"Hello World" <tab> string_const
] <tab> right_bracket
~ <tab> term_sym

如何在<tab>之后获取字符串,跳过第一个字符串和<tab>每行。

我只知道如何只使用第一个字符串并忽略其余部分:

strtok(variablename, "\t");

非常感谢任何有用的答案 谢谢!

1 个答案:

答案 0 :(得分:0)

使用strtok()功能,您还可以获得下一个标记。请参阅man page of strtok()

  

strtok()函数将字符串分解为零个或多个非空标记的序列。在第一次调用strtok()时,应在str中指定要解析的字符串。在应解析相同字符串的每个后续调用中,str必须为NULL

所以你可以打电话:

char* tokenOne = strtok(variablename, "\t"); /* first token  */
char* tokenTwo = strtok(NULL, "\t");         /* second token */

请注意,您不必释放内存,因为strtok()可以使用输入缓冲区,因为它会更改它,例如:

"display \t output_stmt\0"

将是:

"display \0 output_stmt\0"

strtok()之后。之后它只返回指向下一个标记的指针。