我有一个函数接收一个字符串,它是一对逗号分隔的整数,例如“12,4”。如何从这个字符串中解析整数?
答案 0 :(得分:2)
std::getline
实现了基本的“拆分”功能(我在其他问题的前几个答案中没有提到它。)
vector< int > numbers;
istringstream all_numbers_iss( "12,4" );
string number_str;
int number;
while ( getline( all_numbers_iss, number_str, ',' ) // separate at comma
&& istringstream( number_str ) >> number ) {
numbers.push_back( number );
}
答案 1 :(得分:1)
如果您使用Qt,则可以使用QString::split();
答案 2 :(得分:0)
取决于您是否可以依赖传入的数据有效。如果可以,我会这样做:
#include <cstdlib>
#include <utility>
#include <string>
std::pair<int, int> split(std::string const& str)
{
int const a = std::atoi(str.c_str());
int const b = std::atoi(str.c_str() + str.find(',') + 1);
return std::make_pair(a, b);
}
答案 3 :(得分:0)
boost tokenizer工作得很好。例如,点击here。