如何从c ++中的字符串解析逗号分隔的整数

时间:2011-04-03 02:42:56

标签: c++

我有一个函数接收一个字符串,它是一对逗号分隔的整数,例如“12,4”。如何从这个字符串中解析整数?

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