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