所以我有以下字符串,line
是否可以提取内部的int?
我可以使用一个非常基本的正则表达式,但我在这里找到的一些字符串流解决方案看起来更干净并转换为int类型。
string line = " <li id="episode_275">"
我有以下代码,但我不知道如何处理字符串的其余部分:4 tab indent,&#34;
int value;
stringstream ss(line);
ss >> value;
答案 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
}