strtok 字符串的bug

今天在自己寫一個字符串分割的時候,用到了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()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章