我的文件里面有文字(<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");
非常感谢任何有用的答案 谢谢!
答案 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()
之后。之后它只返回指向下一个标记的指针。