将Boost STD :: String :: const_iterator转换为字符串和INT C
Converting boost std::string::const_iterator to string and int c++
我需要将const_iterator转换为可以进行int和字符串操作的类型。结果[1]包含我需要使用的Regex_search中的文本。我已经花了几个小时尝试以一种可行的格式,没有成功...
boost::match_results<std::string::const_iterator> results;
boost::regex ex(pattern, boost::regex::perl);
if(boost::regex_search(line, results, ex))
(results[1] > 10) ? cout << "Fail" : cout << "Pass";
谢谢乔
您可以从类似的const字符串迭代器的匹配结果中创建一个std::string
:
std::string result_string( results[1].first, results[1].second );
...或简单:
std::string result_string = results[1].str();
您可以将字符串胁到int
:
int result_int = boost::lexical_cast< int >( result_string );
...或,如 @jonathan wakely 所指向,如果您使用的是 c 11 :
int result_int = std::stoi( result_string );
results[1].first
是一个迭代器,指向匹配的文本的开头;results[1].second
是一个迭代器,指向匹配的文本末端。使用这对迭代器访问比赛中的单个字符。如果您只想要一个包含匹配文本副本的字符串对象,请使用results[1].str()
。
相关文章:
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 当字符串存储在变量中时,如何将字符串转换为wchar_t
- 如何将这个std::字符串转换为std::基本字符串
- 如何正确将字符串转换为标准::时间::system_clock::time_point?
- 如何在C++中将十六进制字符串转换为文本数据
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 如何从字符串转换为双精度*
- C++:如何将 unix 时间的字符串转换为 *tm?(使用时间错误:"cannot convert 'String' to 'tm*' ")
- 如何在C++中将 Python 字符串转换为其转义版本?
- 如何在 C++11 中将标准::字符串转换为标准::u32字符串?
- 如何将整数字符串转换为整数的二维向量?
- 使用 "stringstream " 将字符串转换为整数
- 将字符串转换为浮点数或整数,而无需使用内置函数(如 atoi 或 atof)
- 将文件复制到自定义位置,存在字符串转换问题
- 将ANSI C字符串转换为UNICODE
- 如何将节点 V8 字符串转换为 C++ 字符串
- 在C++中将字符串转换为双精度,而无需科学记数法
- 使用从文件(stod、strtod、atof)中提取的数据C++从字符串转换为双精度.csv
- 如何在C++中将字符串转换为双精度?
- 将字符串转换为无符号字符数组/字节数组