-4

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

21 100 30

转换为 int 数组为

21,100,30

4

1 回答 1

1

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

要将字符串转换为 int,我使用了该函数(我相信你需要 #include sstream)

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 将您的字符串转换为向量。

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

希望这可以帮助。

于 2013-05-19T23:30:56.003 回答