十六进制数字转换为字符串

今天介绍一个能将遗传命令行的十六进制数字转换为以‘\n’结尾的字符串代码,开始的代码有些小错误。
1.其中的strtoul()函数需要包含头文件,原型是unsigned long int strtoul(const char nptr, char **endptr, int base);base即代表数字的进制。
2.一定要有始有终,前有’/
‘后要有’*/’。

/* Convert sequence of hex digits on command line into a string, terminated by \n */
/*将一串命令行的十六进制数字转换为以‘\n’结尾的字符串*/
#include 
#include 
int main(int argc, char *argv[]) {
    int i;
    for (i = 1; i < argc; i++) {
 unsigned long dig = strtoul(argv[i], NULL, 16);
 putchar((char) dig);
    }
    putchar('\n');
    return 0;
}

输入参数:30 31 32 34 35 36 37 38 39
输出为:012456789
30是十六进制,转换为十进制就是48,在ASCII码中就对应字符‘0’,剩下的数字以此类推。

在Linux下运行结果就是:
十六进制数字转换为字符串_第1张图片

你可能感兴趣的:(十六进制数字转换为字符串)