strtok_r测试代码

gcc version 3.2.3,Linux tmp222 2.6.9-55.EL上的测试代码

 

1,

#include <iostream>
#include <string.h>

int main()
{
        char buf[] = ";132;312;213;;;aa";
        std::cout<<buf<<std::endl;
        char* test;
        char* p = strtok_r(buf, ";", &test);
        while(p)
        {
                std::cout<<p<<std::endl;
                p = strtok_r(0, ";1", &test);
        }
}

输出:

;132;312;213;;;aa
132
3
2
2
3
aa

 

结论:

1)每次strtok_r调用的参数sep可以各不相同;

2)sep包含多个字符而非单个字符时,表示其中任一个字符都是分隔标识;

3)如果字串中有连续多个分隔符,strtok_r会跳过这些分隔符,而不是返回空串;

你可能感兴趣的:(strtok_r测试代码)