C++ 在点上拆分字符串并在C+中从中提取所有字段+;?

C++ 在点上拆分字符串并在C+中从中提取所有字段+;?,c++,string,split,char,C++,String,Split,Char,我试图在点上分割我的实际关键点,然后在点上分割后从中提取所有字段 我的钥匙看起来像这样- @event.1384393612958.1136580077.TESTING 目前,我只能在点上拆分后提取第一个字段,即@event。现在,如何提取所有其他字段。下面是我的代码,我目前正在使用它来提取第一个字段 if (key) { char* first_dot = strchr(key, '.'); if (first_dot) { // cut at the

我试图在点上分割我的实际关键点,然后在点上分割后从中提取所有字段

我的钥匙看起来像这样-

@event.1384393612958.1136580077.TESTING
目前,我只能在点上拆分后提取第一个字段,即
@event
。现在,如何提取所有其他字段。下面是我的代码,我目前正在使用它来提取第一个字段

if (key)
{
    char* first_dot = strchr(key, '.');
    if (first_dot)
    {
        // cut at the first '.' character
        first_dot[0] = 0;
    }
}

cout << "Fist Key: " << key << endl;
我可以从中提取第一个和第二个字段。第三个和第四个字段呢?

您可以改为使用<代码>strtok正是您现在正在做的事情。当遇到定界字符时,它将拆分字符串

if (key) {
    char *first_dot = strtok(key, ".");
    ...
    char *next_dot = strtok(NULL, ".");
}
转换为某些
int
类型可以使用


“提取”字段是一回事,但您想对结果做什么?放在什么地方?哦,对不起,是的,放在什么地方。。让我更新一下这个问题。然后它是重复的:例如,谢谢。现在我想知道如何从中提取单个字段?请原谅我在C++中的无知。我最近开始使用它。谢谢你的帮助。提取字段是什么意思?使用
first\u-dot
next\u-dot
,您已经可以访问第一个和第二个字段。我明白了。。现在它是有意义的,现在我能够提取第一个和第二个字段。。我用我现在使用的代码更新了我的问题。。同样,我也需要提取第三和第四个字段?这在strtok的链接/手册中有解释。在第一个调用中,您给出要解析的字符串。在接下来的所有调用中,您都会将NULL作为第一个参数传递,直到strtok返回NULL(不再有令牌)。此外,这是一个愚蠢的问题,但我想问您-我应该像当前那样拆分字符串,还是应该使用使用
istringstream
描述的方法?
if (key) {
    char *first_dot = strtok(key, ".");
    ...
    char *next_dot = strtok(NULL, ".");
}
uint64_t i = strtoul(next_dot, 0, 10);