将十六进制字符串(char[])转换为int?

标签 c char int

我有一个 char[],其中包含诸如“0x1800785”之类的值,但我想要为其提供该值的函数需要一个 int,如何将其转换为 int?我四处搜寻但找不到答案。谢谢。

最佳答案

你尝试过strtol()吗?

strtol - convert string to a long integer

示例:

const char *hexstring = "abcdef0";
int number = (int)strtol(hexstring, NULL, 16);

如果数字的字符串表示形式以 0x 前缀开头,则必须应使用 0 作为基数:

const char *hexstring = "0xabcdef0";
int number = (int)strtol(hexstring, NULL, 0);

(也可以指定显式基数,例如 16,但我不建议引入冗余。)

关于将十六进制字符串(char[])转换为int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54623054/

相关文章:

C++ 不可变字符串容器

c# - C# 和 C++ 中的++i 运算符区别

c++ - 测试字符串 vector 中的 int

c - 指向未初始化的指针与为其分配内存后指向它

c++ - 每个连接需要多少套接字?

c - 如果客户端发送多个缓冲区而没有休眠,为什么 tcp 服务器会收到一个缓冲区?

c++ - stringstream:dec int 到 hex 到 car 的转换问题

c - C语言输入字符串如何加下划线

c - c中的指针和数组有什么区别?

java - Java 32 位系统 int[] 数组的内存大小