2017-02-04 58 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, "."); 

既然你可以随时更改分隔符的中间。

相关问题