C语言strtoul()函数的粗略见解

    xiaoxiao2025-02-05  50

    #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; }

    在CSAPP学习见到以上这段代码时,起初不懂什么意思,便百度了以下strtoul()这个函数,发现解释不是很懂,便自己经过在Linux上疯狂运行,得出了以下的粗略结论: strtoul()的第一个参数是将要转化的字符,第二个参数默认写NULL,第三个参数是将这个字符当做什么进制来看,若是写0,一般当十进制来看,并且这个参数是有范围的。比如:

    hxl@hxl-virtual-machine:~/桌面/task/code$ gcc -o h hexify.c hxl@hxl-virtual-machine:~/桌面/task/code$ ./h 29 )

    当输入29时,把29看做16进制,转化为十进制为41,再然后经过(char)dig 的转化为char型,再输出,而41对应的ASCII码为)。

    最新回复(0)