类型转换char到int用作向量C ++的索引

时间:2018-10-26 17:24:12

标签: c++ type-conversion

在我的程序中,我有一串都是数字的字符,我想将它们用作从向量中获取值的索引。但是此代码的输出是15位数字,因此不是 1 ,而是 vect [0] ,即我认为它将输出的数字。

char c = '0';
vector<int> vect = {1};
int i = (int)c;
cout<<vect[i];

我已经看到将字符从整数转换为

int i=(int)c;

所以我真的不明白那不是索引的合适类型。

1 个答案:

答案 0 :(得分:1)

首先,使用C样式强制转换(int i = (int) c;)而不是使用静态强制转换(int i = static_cast<int>(c);)是不好的做法。但是确实,正如其他人提到的那样,char会自动提升为int

然后字符'0'与索引0不同。看看:

int i = c;
std::cout << i << std:endl;

如果要将字符“ 0”用作索引0,请使用:

int i = c - '0';