有没有办法对两个字符串进行分词并并行移动分词? (因为我有两个字符串,所以我不能使用 strtok(NULL, "bar")
两次)
此外,有没有办法让 strtok
标记一个字符串并保持该字符串未标记?
例如:
void foo(char* form, char* num){
char *templ=form, *tempr=num;
templ = strtok(templ, " ");//but this tokenize form as well
是的,在大多数平台上都有。您可以使用 strtok_r
,它是 strtok
的可重入版本,它不会将状态存储在静态内存中:
char *save1, *save2;
temp1 = strtok_r(templx, " ", &save1);
temp2 = strtok_r(temply, " ", &save2);
请注意,如果 strtok_r
可用,您通常应该使用它,即使是解析单个 token 源也是如此。
如果 strtok_r
不可用,您可以求助于使用 sscanf
并跟踪要标记化的字符串中的位置。根据您尝试解决的标记化任务的复杂性,这也可以提供可行的解决方案。
我是一名优秀的程序员,十分优秀!