strtok vs istringsteam分裂弦乐?

时间:2013-11-26 18:19:44

标签: c++ string ubuntu strtok istringstream

我试图在dot上拆分我的实际键,然后在点上分割后提取所有字段。

我的钥匙看起来像这样 -

t26.example.1136580077.colox

下面是我在印象中的代码,它应该可以正常工作但之后我发现它只适用于Windows而且我在ubuntu上运行我的代码,因为这个原因我总是得到 -

 error: âstrtok_sâ was not declared in this scope

以下是我的代码

if(key) {
    vector<string> res;
    char* p;
    char* totken = strtok_s(key, ".", &p);
    while(totken != NULL)
    {
        res.push_back(totken);
        totken = strtok_s(NULL, ".", &p);
    }

    string field1 = res[0]; // this should be t26
    string field2 = res[1]; // this should be example
    uint64_t field3 = atoi(res[2].c_str()); // this should be 1136580077
    string field4 = res[3]; // this should be colox

    cout<<field1<<" "<<field2<<" "<<field3<<" "<<field4<<endl;
}         

我正在运行Ubuntu 12.04而g ++版本是 -

g++ (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3

有没有办法用普通的strtok做同样的事情,因为我不想使用istringstream,因为与istringstream相比,strtok会更有效..

0 个答案:

没有答案