【问题标题】:How to convert hex str to int? [duplicate]如何将十六进制字符串转换为int? [复制]
【发布时间】:2020-12-09 07:22:42
【问题描述】:

如何将 str "0xfa" 转换为 int 0xfa,str "0x5c" 转换为 int 0x5c ?

我的代码:

#include <stdio.h>
#include <string.h>

int main(){

        char a[]="0xfa";
        char b[]="0x5c";
        int c=a;
        int d=b;
        
        //i have to get c to be 0xfa,and d to be 0x5c
        printf("%c%c\n",(char)c,(char)d);
    return 1;
}

【问题讨论】:

  • 只是谷歌“将十六进制字符串转换为字符数组”
  • 请注意,普通程序只有在失败时才返回 1,否则返回 0,尽管这通常没什么实际区别,除非您将其用作终端工具。

标签: c


【解决方案1】:

一个字符,在 C 中,是一个 int。

但是,在这里,您尝试将 str 与 hex val 转换为 hex int。

您应该使用 sscanf() 和 %x 进行格式化。

或者 atoi() , strtol().

它们都是专门为此目的而设计的。

【讨论】:

  • @phuclv 嗯...好吧,你们这里的人一直担心atoi(),而我去使用我的scanf()。
  • "C 中的一个字符是一个 int。" --> 不完全是。更像是char:(或unsigned char,signed char)C 将“字符”指定为单字节字符,适合一个字节的位表示。
猜你喜欢
  • 2020-01-03
  • 1970-01-01
  • 2011-01-17
  • 2023-03-08
  • 2017-05-29
  • 1970-01-01
  • 2013-02-07
  • 2017-02-18
  • 2020-07-18
相关资源
最近更新 更多