C 如何从单个字符串中获取第二个令牌?

C 如何从单个字符串中获取第二个令牌?,c,C,我正在寻找一种使用strtok从字符串中获取第二个令牌的方法 token = strtok(Input, "-"); strcpy(first, token); token = strtok(NULL, "-"); token = strtok(Input, "."); strcpy(name, token); token = strtok(NULL, "."); 设置字符串的方式是:等等等等等等;废话 每次我循环通过,它只需要第一个令牌。永远不

我正在寻找一种使用strtok从字符串中获取第二个令牌的方法

    token = strtok(Input, "-");
    strcpy(first, token);
    token = strtok(NULL, "-");
    token = strtok(Input, ".");
    strcpy(name, token);
    token = strtok(NULL, ".");
设置字符串的方式是:等等等等等等;废话


每次我循环通过,它只需要第一个令牌。永远不要拿起第二个

strtok具有破坏性。它修改最初传入的输入字符串。修改包括将
\0
放置在正式使用分隔符的位置。因此,您的
输入
字符串被“缩短”,似乎只包含提取的第一个标记。防止在标记化过程中失去位置的最简单修复方法是替换

token = strtok(Input, ".");


因为您总是可以中途更改分隔符。

strtok
具有破坏性。它修改最初传入的输入字符串。修改包括将
\0
放置在正式使用分隔符的位置。因此,您的
输入
字符串被“缩短”,似乎只包含提取的第一个标记。防止在标记化过程中失去位置的最简单修复方法是替换

token = strtok(Input, ".");


因为你总是可以中途更改分隔符。

@StoryTeller agh jesus。这么简单的解决办法。谢谢。或
token=strtok(输入“-.;”第一次。然后
token=strtok(NULL,“-;”)@讲故事的人啊,耶稣。这么简单的解决办法。谢谢。或
token=strtok(输入“-.;”第一次。然后
token=strtok(NULL,“-;”)