繁体   English   中英

多次使用strtok_s

[英]Using strtok_s more than once

我正在使用strtok_s根据用户输入从C字符串中提取值。 但是,我需要能够多次调用此函数。 目前,当我这样做时,通过strtok_s遇到了问题。 我相信是因为它仍然指向另一个位置,并且不会重新开始。 ListOfCoeffs是我的c字符串,这只是一个具有双精度的c字符串列表。 度是从用户传递到函数的int值。 有什么方法可以“重置” strtok,以便它可以使我多次使用此功能而无需关闭程序? 对于使用strtok_s的糟糕风格表示歉意,我一点都不熟悉。

char *  pch;
double coeffValue;
char * context;



pch = strtok_s(listOfCoeffs, " ", &context);

if (degree == 0)
{
    // DO NOTHING
}

else
{
    for (int i = 0; i < degree; i++)
    {
        pch = strtok_s(NULL, " ", &context);
    }
}


coeffValue = atof(pch);
return coeffValue;

strtok系列函数在标记输入字符串时会破坏性地修改输入字符串。 如果您想从头开始,则需要先复制字符串,然后再将其传递给strtok

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM