解析后如何将字符串转换为int数组?
问题描述:
我想,我已经解析与空间成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 "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++;
}
}
我目前得到的结果有五个整数读取,而不是在我所做的例子三,。此外,当我打印出来的阵列,我完全不同的数字:
209664128 32764 0 0 0
我有点明白这个问题,但我新的C++,所以我可能是错的,我不知道该如何解决这个问题。任何帮助将不胜感激。
答
这里有一些最小的修改,以使您的示例工作。 我认为你应该避免在std::stringstream::operator>>
和std::stringstream::operator<<
之间连续呼叫。
//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++;
}
}
+0
我可能会使用那个stringstream编辑。谢谢! – TitustheTitan
相关/欺骗:http://stackoverflow.com/questions/17724925/parse-string-containing-numbers-into-integer-array – NathanOliver
'INT intNum [大小];' - 如果'size'是一个变量(不是常量),那么这不是合法的C++。指定数组中的条目数时,C++需要常量。 – PaulMcKenzie
我该如何做到这一点,以便数组将非常适合整数的大小。我只能制作一个很大的数组,然后我不得不缩短它。 – TitustheTitan