将字符串转换为int数组C ++

时间:2013-05-19 23:23:19

标签: c++

如何在c ++中将字符串转换为int数组?
我将输入作为

  

21 100 30

转换为int数组
  

21,100,30

1 个答案:

答案 0 :(得分:1)

我刚为TopCoder比赛做了类似的事情,我会告诉你我是怎么做的,但不会保证这是最好的方法。

要将字符串转换为int我使用了该函数(您需要#include sstream I belive)

int NtS ( string myS )
{
    istringstream buffer(myS);
    int value=0;
    buffer >> value;
    return value;
}

上面的函数将从字符串返回一个int。 现在您需要做的就是将初始字符串拆分为更小的字符串。 为此,我使用了这个功能

int getx(int x,string st)
{
    int nr=0;
    string ret="";
    for(int i=0;i<st.size();++i)
        {
            if(st[i]==' '){
                ++nr;
                continue;
                }
            if(nr==x)
                ret = ret + st[i];
        }

    return NtS(ret);
}

其中x是您要从字符串中获取的数字。因此,如果您想要第一个键入0。 示例:如果您想从字符串中获取100,则只需编写getx(1,“21 100 30”);它将返回100(int)。

现在你有了这个简单的把你把字符串转换成一个向量。

for(int i=0;i<3;++i)
    myvector.push_back(getx(i,my_string));

希望这有帮助。