Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将字符串放入整数数组c++;_C++_Arrays_String_Integer_Int - Fatal编程技术网

C++ 如何将字符串放入整数数组c++;

C++ 如何将字符串放入整数数组c++;,c++,arrays,string,integer,int,C++,Arrays,String,Integer,Int,我有一个字符串,其中包含用户输入的内容 string userstr = ""; cout << "Please enter a string "; getline (cin, userstr); 但是,如何将字符串放入该数组中 int* myarray = new int[ userstr.size() ]; std::copy( usestr.begin(), userstr.end(), myarray ); 终止零未附加到数组。如果需要,您应该为数组分配一个以上的元素

我有一个字符串,其中包含用户输入的内容

string userstr = "";
cout << "Please enter a string ";
getline (cin, userstr);
但是,如何将字符串放入该数组中

int* myarray = new int[ userstr.size() ];

std::copy( usestr.begin(), userstr.end(), myarray ); 

终止零未附加到数组。如果需要,您应该为数组分配一个以上的元素,并自己放置终止零。

这里有一种方法

for(int i=0;i<userstr.length();i++){
    myarray[i] = userstr[i];
}

for(int i=0;i您可以使用[]运算符访问字符串中的每个元素,该运算符将返回对字符的引用。然后您可以扣除字符“0”的int值,从而获得正确的int表示形式

for(int i=0;i<userstr.length();i++){
    myarray[i] = userstr[i] - '0';
}

for(inti=0;i您只需使用isstringstream将字符串转换为int,如下所示

istringstream istringName(intString);
istringName >> real_int_val;
现在它神奇地变成了一个包含字符串中所有数字的整数
但是我不明白为什么你不把它作为一个int放在首位???

sizeof(userstr)
userstr.length()或
userstr.size()不同
。执行此操作时可能出现重复的错误:Windows在cw2.exe中触发了断点。这可能是由于堆损坏,这表明cw2.exe或其加载的任何DLL中存在错误。这也可能是由于用户在cw2.exe具有焦点时按F12。输出窗口可能有更多诊断信息n、 +1.当然,也可以声明
myarray
,当它超出作用域时会自动释放内存。例如
int-myarray[userstr.size()]
但是userstr不是一个常量,它给了我一个错误,说表达式必须有一个常量。哦,似乎我已经理解了错误的原因。你应该动态分配数组。似乎你试图在堆栈中或静态地声明它。哦,我想:-->int*myarray=new int[userstr.size()];动态分配数组?当我这样做并显示myarray时,我只会得到随机数:例如,如果我输入“hey my name is”输出是006B4D30我假设输入的是一个int。如果你想将字符串存储为一个整数数组,那么你要做的就是存储代表每个字符的整数-这就是你要做的吗?我不清楚目的是什么,如果是这样对不起,是的,这就是我要做的,这是一个版本y long day o.OIn在这种情况下,您只需从代码中删除“-0”。然后,当您希望将其转换回字符串时,必须将每个整数转换回一个字符。例如,如果您想输出存储为int的字符串中的第一个字符,您只需说cout ah i see,谢谢
istringstream istringName(intString);
istringName >> real_int_val;