Strtok递归调用指针丢失

Aym*_*dou 2 c strtok

我需要在我的程序中调用strtok两次,一次调用另一次.我遇到的问题是第一个strtok在执行内部strtok后无法恢复循环,并且它丢失了第一个char的指针.

在这里解释更多是一个例子:

主要:

 tokens = strtok (stmt, ":");
        while (tokens != NULL) {
            convert_field(tokens);
            tokens = strtok (NULL, ":");
        }
Run Code Online (Sandbox Code Playgroud)

convert_field我做的功能

tokens = strtok (sub_stmt, ".->//");
        while (tokens != NULL) {
            convert_field(tokens);
            tokens = strtok (NULL, ".->//");
        }
Run Code Online (Sandbox Code Playgroud)

use*_*016 5

strtok不是可重入的(这意味着你不能在它完成之前的执行之前再次调用该函数),你必须使用strtok_r(它是可重入的).