我有一个包含用户输入内容的字符串
string userstr = "";
cout << "Please enter a string ";
getline (cin, userstr);
然后将字符串存储在userstr中,然后我希望将字符串存储在整数数组中,其中每个字符都是数组中的不同元素。我创建了一个动态数组,如下所示:
int* myarray = new int[sizeof(userstr)];
但是,如何将我的字符串放入该数组?
答案 0 :(得分:3)
int* myarray = new int[ userstr.size() ];
std::copy( usestr.begin(), userstr.end(), myarray );
终止零未附加到数组。如果你需要它,你应该分配具有一个元素的数组并自己放置终止零。
答案 1 :(得分:2)
您可以使用[]运算符访问字符串中的每个元素,该运算符将返回对char的引用。然后,您可以扣除char'0'的int值,您将获得正确的int表示。
for(int i=0;i<userstr.length();i++){
myarray[i] = userstr[i] - '0';
}
答案 2 :(得分:0)
您只需使用isstringstream将字符串转换为int,如下所示
istringstream istringName(intString);
istringName >> real_int_val;
现在它神奇地变成了一个包含字符串中所有数字的int 但是我不明白为什么你不会在第一时间把它作为一个int?
答案 3 :(得分:-1)
这是一种方法
for(int i=0;i<userstr.length();i++){
myarray[i] = userstr[i];
}