string test;
test="3527523";
int a=test[3];
std::cout<<a<<std::endl;
我原以为输出是 7,但我得到的是 55。 我搜索了不同的帖子,他们都使用这种方法没有任何问题..我只是不知道我的问题出在哪里。 感谢您的帮助!
最佳答案
test[3]
返回 char
,您要将其转换为整数,因此它返回字符的 ASCII 值。 3
在 ASCII 中是 55
.
尝试使用 char
而不是 a
的类型:
char a = test[3];
std::cout << a; // 3
如果您希望结果为整数,请从 '0'
中减去该字符:
std::string test = "3527523";
int a = test[3] - '0';
std::cout << a; // 3
关于c++ - 将字符串转换为 int C++ 的错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16492463/