将字符串中的索引转换为int

时间:2017-02-12 08:47:39

标签: c++ string multidimensional-array char type-conversion

我想将字符串中的索引转换为int,以便填充int类型的2D数组。

string s = "1 2 3";
a[0][0] = s.at(0);

我希望a[0][0]存储int值1,但现在它使用此方法存储49(我假设是直接转换)。

我已尝试atoistoistatic_cast,但我收到转化错误。

2 个答案:

答案 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;
}