我有这个字符串,其中包含用/
分隔的数字,就像这个24/2/13
一样。我想将它们单独保存在int的向量中,但它给了我这个错误expected unqualified-id before '.' token|
。我知道这可能是一个愚蠢的错误,但那只是现在的qay :)。这是代码:
int t;
string s;
for(int i=0;i<final_states.size();i++)
{
if(final_states.at(i)!='/')
s.push_back(final_states.at(i));
else
{
t=atoi(s.c_str());
temp_final_states.push_back(t);
s.clear();
}
}
答案 0 :(得分:0)
我认为这是一个编译错误。 看起来您正在迭代 final_states 。但是你试着在 temp_final_states 上调用push_back()。我假设你打算将它作为同一个集合。
答案 1 :(得分:0)
请参阅以下示例代码http://ideone.com/id7E22
char str[] ="22/33/44";
char * pch;
cout<<"Splitting string into tokens:\n"<<str;
pch = strtok (str,"/");
vector<int> vec;
while (pch != NULL)
{
int val = atoi(pch);
cout<<" "<<val;
vec.push_back(val);
pch = strtok (NULL, "/");
}
答案 2 :(得分:0)
假设您的字符串始终以数字值开头,并且&#39; /&#39;字符不在字符串的末尾,这应该为你做:
std::string final_states="24/2/13";
std::vector<int> temp_final_states;
temp_final_states.push_back(atoi(final_states.c_str()));
std::string::size_type index = final_states.find('/');
for (; index != std::string::npos; index = final_states.find('/', index) )
{
++index;
const char* str = final_states.c_str() + index;
temp_final_states.push_back(atoi(str));
}