今天介绍一个能将遗传命令行的十六进制数字转换为以‘\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下运行结果就是: