2017-02-25 95 views
0

說我有一個叫做STR的格式使用strtok()存儲字符串的最後一個標記?

​​

的字符串,我想每個標記存儲到自己的字符數組,像這樣

char* tok1 = strtok(str, ", "); 
char* tok2 = strtok(str, ", "); 
char* tok3 = strtok(str, "\0"); //this line is incorrect 

,但我得到的第三個令牌,因爲一個錯誤strtok()需要一個非空輸入。由於strtok()需要兩個參數(一個字符串和一個分隔符),我將如何檢索最終的令牌?

+1

''\ 0「'和'」「'之間沒有有效的區別。你不能在字符串中使用'\ 0'作爲真正的字符,因爲它是空終止符。 – Barmar

+0

那麼我應該怎麼把它作爲最終令牌的分隔符呢?除了空終止符以外,沒有其他值。它會是「」嗎? – EgerStu

+1

只需使用'「」'因爲您不需要查找分隔符。 – Barmar

回答

4

如果您解析相同的字符串,第一個參數的值必須是NULL隨後所有的電話:

char* tok1 = strtok(str, ", "); 
char* tok2 = strtok(NULL, ", "); 
char* tok3 = strtok(NULL, ""); 

在第一次調用strtok()來解析應該是字符串在str中指定。在每個應該解析相同字符串的後續調用中,str應該爲NULL。

相關問題