如何从C样式的const char *数组中提取整数

时间:2015-12-22 16:28:19

标签: c++ arrays string

我正在尝试从C样式的const char *数组中提取一个整数。

到目前为止,我有这个:

int Suite::extractParameter(const char* data)
{
    //Example data "s_reg2=96"

    const char *ptr = strchr(data, '=');
    if(ptr)
    {
        int index = ptr - data;

        //Get substring ie. "96"

        //Convert substring to int and return
    }
    else return -1;
} 

但我无法弄清楚如何提取子字符串然后将其转换为整数。

要提取的整数介于0和9999之间。

1 个答案:

答案 0 :(得分:4)

如果字符串始终位于'='字符后面的末尾,则可以使用std::atoi

const char *ptr = strchr(data, '=');
if(ptr && *(ptr+1)) { // it's not NULL and not the last character
    int val = std::atoi(ptr+1);
}

Demo.