C++ 解析后如何将字符串转换为int数组?
我正在尝试将已使用空格解析的字符串转换为int数组:C++ 解析后如何将字符串转换为int数组?,c++,arrays,string,int,C++,Arrays,String,Int,我正在尝试将已使用空格解析的字符串转换为int数组: //example of string before parsing arrElement = "1,2,3"; //parsing for(int i =0; i < size; i++){ if(arrElements[i] == ','){ arrElements[i] = ' '; } } //string is now "
//example of string before parsing
arrElement = "1,2,3";
//parsing
for(int i =0; i < size; i++){
if(arrElements[i] == ','){
arrElements[i] = ' ';
}
}
//string is now "1 2 3"
//trying to convert numbers only into int
stringstream str;
int intCount = 0;
int intNum[size];
for(int i = 0; i < size; i++){
str << arrElements[i];
if(str == " ") {
}
else {
str >> intNum[intCount];
intCount++;
}
}
我理解这个问题,但我是新C++,所以我可能错了,我不确定如何解决这个问题。如果有任何帮助,我们将不胜感激。以下是一些使您的示例生效的最小修改。 我认为您应该避免
std::stringstream::operator>
和std::stringstream::operator intNum[intCount]之间的连续调用;
intCount++;
}
}
related/dupe:int intNum[size]代码>如果<代码>大小<代码>是变量(不是常数),那么这不是合法的C++。C++在指定数组中的条目数量时需要常数。如何使数组与整数的大小完全一致。我只能使数组的大小如此之大,然后我最终不得不将其缩短。@TitustheTitan-std::vector intNum(size)代码>我可能会使用stringstream编辑。非常感谢。
209664128 32764 0 0 0
//example of string before parsing
std::string arrElements = "1,2,3";
//parsing
for(int i =0; i < arrElements.size(); i++){
if(arrElements[i] == ','){
arrElements[i] = ' ';
}
}
//string is now "1 2 3"
//trying to convert numbers only into int
stringstream str(arrElements);
int intCount = 0;
static const int size = 3;
int intNum[size];
for(int i = 0; i < size; i++){
if(str == " ") {
}
else {
str >> intNum[intCount];
intCount++;
}
}