c ++使用stringstream从字符串中提取一个int

c++ extract an int from inside a string using stringstream

所以我有以下字符串,line 是否可以提取其中的整数?

我可以使用非常基本的正则表达式,但我在这里找到的一些字符串流解决方案看起来更清晰,并且可以转换为 int 类型。

string line = "            <li id="episode_275">"

我有以下代码,但我不知道如何处理字符串的其余部分,例如:4 制表符缩进,"

int value;
stringstream ss(line);
ss >> value;

这可以很简单地完成,只需查找第一个数字,然后让 strtol 从那一点开始为您进行整数解析:

#include <string>
#include <cctype>
#include <cstdlib>

int extractFirstIntInString(std::string const& s)
{
    for (std::size_t i = 0; i != s.size(); ++i)
        if (std::isdigit(s[i]))
            return std::strtol(s.c_str() + i, nullptr, 10);
    return 0;    // no integer in string
}