c++ - 将字符串转换为 int C++ 的错误结果

标签 c++

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/

相关文章:

c++ - 用于从脚本中读取任意类型变量的单一数据结构,用于在运行时检索和编辑

c++ - 链接器中 CXX_FLAGS 的 CMake 交叉编译问题

c++ - 在 Windows 中将 rinside 与 qt 一起使用

java - 为什么 pop() 应该接受一个参数?

c++ - 对构造函数和析构函数的 undefined reference

Android NDK 传感器奇怪报告间隔到事件队列

c++ - 我如何扩展 std::basic_streambuf 以将任何可迭代序列视为流?

c++ - 端口Audio和Libsndfile没有数据?

c++ - friend 功能不访问另一个 friend 类的私有(private)成员

c++ - 在 C++ 中打印到标准输出时/* 注释的行为