2021年11月20日
记录一次使用strtok奇怪的问题
strtok会破坏源字符串,这个在认识这个函数的时候就知道了
所以程序中大概这样用的
//源字符串 string filename = "xxx_yyy_zzz.xml"; //将字符串存入容器,比如set set<string> setFiles; setFiles.insert(string(filename)); //分解字符串 char* p1 = strtok(filename.c_str(), "_"); char* p2 = strtok(NULL, "_"); char* p3 = strtok(NULL, ".");
问题:
g++ 9.3.0编译没用问题。
g++ 4.9.4编译容器里的字符串是xxx
跟编译器的实现有关?