晟松的代码学习日志之hexify.c
程序员文章站
2022-03-04 22:01:46
...
5:hexify.c
代码为:
/* Convert sequence of hex digits on command line into a string, terminated by \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);//stroul函数将字符数转化为无符号长整型数
putchar((char) dig);//将dig强制转换为字符型
}
putchar('\n');
return 0;
}
/* 输入参数:30 31 32 33 34 35 36 37 38 39 输出为:0123456789
*/
strtoul()函数是用于将字符串转化为无符号长整型数,其中第一个参数是被转换数,第二个参数为返回字符串有效数字的结束地址,第三个参数为要转换的进制,即转换基数。在本程序中,将每一个参数转换为16进制,再转换为无符号长整型,最后输出,而输出函数putchar只会输出一个字符,所以最终会出现只输出了每一个参数的一个字符。