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

    xiaoxiao2023-10-28  31

    今天介绍一个能将遗传命令行的十六进制数字转换为以‘\n’结尾的字符串代码,开始的代码有些小错误。 1.其中的strtoul()函数需要包含头文件<stdlib.h>,原型是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 <stdio.h> #include <stdlib.h> 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下运行结果就是:

    最新回复(0)