首页 > 解决方案 > 如何使用 sscanf 获取单个字符

问题描述

我正在尝试sscanf将字符串中的单个字符转换为其相应的十六进制值。

#include <stdio.h>

int main () {
    char *str = "DEADBEEF";     
    int num;
    sscanf(str[2],"%x",&num);
    printf("%x",num);
}

当我尝试编译时,我收到一个警告,因为sscanf正在寻找一个char *而不是一个char. 我可以使用与号来获取字符的地址(即&str[2]),但这会读取字符串的其余部分,直到遇到\0.

标签: cscanf

解决方案


lurker评论中解决:

使用sscanf(&str[2], "%1x", &num);您可以读取单个字符,而不是sscanf可以读取的整数


推荐阅读