C语言strtoul():将字符串转换为正整数
strtoul() 是 C语言的一个标准库函数,定义在
strtoul() 函数用于将字符串转换为正整数(unsigned long int)。函数的原型如下:
【实例】以下的 C 语言示例程序演示了 strtoul() 函数的功能和用法。
<stdlib.h>
头文件中。strtoul() 函数用于将字符串转换为正整数(unsigned long int)。函数的原型如下:
unsigned long int strtoul(const char *str, char **endptr, int base);
参数
- str:指向要转换的字符串。
- endptr:endptr 的值可以为 NULL,如果不为 NULL,则函数内部会将 endptr 指向 str 中下一段要转换的字符串。
- base:指定要使用的基数,取值范围从 2 到 36,包括 2 和 36。如果 base 的值为 0,那么基数将从字符串的内容推断。
返回值
成功转换时,返回对应的无符号长整型值;如果没有可转换的字符,返回零;如果转换的值超出了 unsigned long int 的表示范围,则返回 ULONG_MAX,并设置 errno 为 ERANGE。【实例】以下的 C 语言示例程序演示了 strtoul() 函数的功能和用法。
#include <stdio.h> #include <stdlib.h> int main() { const char* str = " 0x1f2a3b 010101"; char* endptr; unsigned long int value; value = strtoul(str, &endptr, 0); // 使用0作为基数,从字符串中推断基数 printf("Value: %lu\n", value); // 输出 "Value: 2035179" value = strtoul(endptr, NULL, 2); // 使用2作为基数,继续转换下一个字符串 printf("Value: %lu\n", value); // 输出 "Value: 21" return 0; }输出结果为:
Value: 2042427
Value: 21