如何在 C++ 中将字符串转换为 int 数组?
我将输入作为
21 100 30
转换为 int 数组为
21,100,30
我刚刚为 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));
希望这可以帮助。