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
}
所以我有以下字符串,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
}