strtoul函数可以将一个字符串转换成一个无符号长整型(unsigned long int)。其中,参数base表示待转换的字符串所表示的进制(例如,十进制、十六进制等),可以是2到36之间的任意整数。如果base为0,则表示根据字符串的不同形式自动判断其进制。
代码示例:
#include
#include
int main() {
char str1[] = "123"; // 十进制字符串
char str2[] = "7b"; // 十六进制字符串
unsigned long int num1 = strtoul(str1, NULL, 10);
unsigned long int num2 = strtoul(str2, NULL, 16);
printf("num1 = %lu\n", num1);
printf("num2 = %lu\n", num2);
return 0;
}
运行结果:
num1 = 123
num2 = 123
解释:
第一个参数str1为待转换的字符串,表示十进制的数123。
第二个参数NULL代表不需要返回被转换后的字符串的指针。
第三个参数10表示待转换的字符串是十进制格式。
第一个参数str2为待转换的字符串,表示十六进制的数7b。
第二个参数NULL代表不需要返回被转换后的字符串的指针。
第三个参数16表示待转换的字符串是十六进制格式。
需要注意的是,strtoul函数可能会返回一个特殊值ULONG_MAX,表示转换结果超出了无符号长整型的范围。因此,在使用strtoul函数时需要对返回值进行检查。