2017-02-04 57 views
0

我正在尋找一種方法來使用strtok從字符串中獲取第二個標記。如何從單個字符串獲取第二個標記?

token = strtok(Input, "-"); 
    strcpy(first, token); 
    token = strtok(NULL, "-"); 
    token = strtok(Input, "."); 
    strcpy(name, token); 
    token = strtok(NULL, "."); 

字符串設置的方式是:blah-blah.blah; blah。

每當我循環時,它只需要第一個標記。從來沒有拿起第二個。

+0

@StoryTeller agh jesus。這樣一個簡單的修復。謝謝。 – AerisNeo

+1

[示例代碼](http://ideone.com/O6e88E) – BLUEPIXY

+0

或'token = strtok(Input,「 - .;」);'第一次。那麼'token = strtok(NULL,「 - .;」);' – BLUEPIXY

回答

1

strtok具有破壞性。它修改了最初傳入的輸入字符串。修改包括放置\0正式的分隔符。所以你的Input字符串變得「縮短」,並且似乎只包含被提取的第一個標記。即防止在您的tokeniztion過程中丟失的地方,最簡單的解決方法是更換

token = strtok(Input, "."); 

token = strtok(NULL, "."); 

既然你可以隨時更改分隔符的中間。

相關問題