我试图从字符串中提取数字:
string line = "00:00:15,000 --> 00:00:18,000";
smatch results;
bool found = regex_match(line, results, regex("(\\d\\d):(\\d\\d):(\\d\\d),(\\d\\d\\d) --> (\\d\\d):(\\d\\d):(\\d\\d),(\\d\\d\\d)"));
/*for (auto result : results) {
cout << result << endl;
}*/
int res = atoi( *results[3] );
我可以轻松打印结果(注释代码),但我无法将结果转换为int。由于某些原因,取消引用对此结果数组无效。
答案 0 :(得分:1)
在C ++ 11中,您应该使用std::stoi
将std::string
转换为整数。 (并且不需要取消引用它;事实上,*results[3]
是一个编译错误,因为它不是指针。)
int number = stoi(results[3]);
cout << number << endl; // 15