c ++使用stringstream从字符串内部提取int

时间:2016-03-22 22:30:31

标签: c++ stringstream

所以我有以下字符串,line是否可以提取内部的int?

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

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

我有以下代码,但我不知道如何处理字符串的其余部分:4 tab indent,&#34;

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

1 个答案:

答案 0 :(得分:1)

这可以通过查找第一个数字,然后让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
}