我想将字符串中的索引转换为int,以便填充int
类型的2D数组。
string s = "1 2 3";
a[0][0] = s.at(0);
我希望a[0][0]
存储int值1,但现在它使用此方法存储49(我假设是直接转换)。
我已尝试atoi
,stoi
和static_cast
,但我收到转化错误。
答案 0 :(得分:2)
使用时
a[0][0] = s.at(0);
您要将字符'1'
的值分配给a[0][0]
,这由ASCII编码中的整数值49表示。
如果您确定只有一个数字,则可以使用
a[0][0] = s.at(0) - '0';
您可以使用更灵活的策略。
std::istringstream str(s);
str >> a[0][0];
答案 1 :(得分:-2)
之前给出了错误的答案:
这应该有效:
using namespace std;
int main ()
{
string str ("3");
int i = str.at(i) - 48;
cout << i <<endl;
return 0;
}