C 语言 Strtoul() 函数

2024 年 8 月 28 日 | 3 分钟阅读

引言

C/C++ 的 strtoul() 函数str 中的字符串的 第一个字符 转换为 无符号长整型值,其指定的基数必须在 2 到 36 之间(含两端)或具有特殊值 0。一旦检测到第一个 非空白字符,该函数就会丢弃所有空白字符。之后,它会尽可能多地获取字符以构成有效的 base-n 无符号整数 数字表示,并将它们转换为整数值。

语法

C 语言中 strtoul 函数的语法如下

使用的参数

nptr

它表示可以从指向字符串的指针创建的 无符号长整型

endptr

strtoul 函数 使用它来指定转换停止的位置。如果 endptr 不是 空指针,则 strtoul 函数 将更改 endptr,使其现在指向未转换的第一个字符。

base

它是正在转换的 数字的基数。基数用作数字的基,必须在 2 到 36 之间。除非转换后的数字以 O(表示八进制)、Ox(表示十六进制)或 OX(表示十六进制) 开头,否则如果基数为 ,则认为该数字是十进制。

返回值

strtoul 函数 返回 字符串的 无符号长整型 表示。strtoul 函数 跳过字符串开头的​​所有空白,将其后的字符转换为数字,然后当它到达第一个非数字字符时终止。

如果 strtoul 函数 尝试转换一个过大或过小的值,errno 变量将被设置为 ERANGE

strtoul 示例

让我们看一个 strtoul 函数 如何在 C 程序中使用的示例

输出

321 decimal
6e8 hexadecimal

C 中 strtoul 的另一个示例

输出

Enter any number: 1898
Enter base: 10
Converted unsigned long int = 1898

Enter any number: 10110
Enter base: 2
Converted unsigned long int = 22

Enter any number: ab
Enter base: 16
Converted unsigned long int = 171