今天在自己写一个字符串分割的时候,用到了strtok,字符串本身如下http://10.68.3.79:8093/web/get_char;?playerid=427512252&playername=yujiah
经过strtok处理后发现变成了这个个样子,如下http://10.68.3.79:8093/web/get_char\000?playerid=427512252&playername=yujiah.
也就是说字符串在进行处理的时候把;这个字符转化成了\000这个字符串 ,所以实际上破坏了原来的字符串。
~~~~~~~~~~~~~~~~~~~~~~没有看函数手册,函数手册明确写道会改变原始字符串。所以在字符串传入的时候,最好深度拷贝复制一个str,而普通的std::string 只是简单的copy和引用计数。
实现发现这个样可以深度拷贝复制 string std::string str = 原始字符串.c_str()