C中字符串分割函數strtok的一個坑


strtok的典型用法是:

 p = strtok(s4, split);
    while(p != NULL){
        printf("%s\n", p);
        p = strtok(NULL, split);
    }

 需要注意的是:如果s4是字符串常量,運行這一段代碼會報出段錯誤。因為strtok為了處理方便,會更改字符串s4中的一些字符(將分隔符split更改為'\0'),而字符串常量是不能更改的,所以會報段錯誤。

   第二個需要注意的點是:strtok處理的過程中會更改字符串s4中的一些字符(將分隔符split更改為'\0'),可惡的是,它處理完之后還不會給你再改回來。。。。被strtok強奸后的s4已經廢了,千萬不要再拿來用了。

   

    所以,永遠不要用strtok!Do It yourself.

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM