C++ c++;使用stringstream从字符串内部提取int
我有一个字符串,C++ c++;使用stringstream从字符串内部提取int,c++,stringstream,C++,Stringstream,我有一个字符串,line可以提取里面的int吗 我可以使用一个非常基本的正则表达式,但我在这里找到的一些stringstream解决方案看起来更干净,并转换为int类型 string line = " <li id="episode_275">" 只需查找第一个数字,然后让strtol从这一点开始为您进行整数解析,即可完成此操作: #include <string> #include <cctype> #include <cstd
line
可以提取里面的int吗
我可以使用一个非常基本的正则表达式,但我在这里找到的一些stringstream解决方案看起来更干净,并转换为int类型
string line = " <li id="episode_275">"
只需查找第一个数字,然后让
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
}
#包括
#包括
#包括
int extractFirstIntInstalling(标准::字符串常量(&s)
{
对于(std::size_t i=0;i!=s.size();++i)
如果(标准::isdigit(s[i]))
返回std::strtol(s.c_str()+i,nullptr,10);
返回0;//字符串中没有整数
}
可能更适合std..regex
和std::stoi
进行匹配。@πάνταῥεῖ 我想这对stringstream来说太复杂了,对吧?
#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
}