C 编程/stdlib.h/strtol
外观
strtol 是 C 编程语言中的一个函数,用于将字符串转换为长整数。strtol
代表字符串到长整数。它包含在 C 标准库头文件 stdlib.h
中。其原型如下所示
long strtol(const char *restrict str, char **restrict end, int base);
str
参数指向一个字符串,由包含带符号整数值的字符表示的字符数组表示。该字符串必须以空字符结尾。base
参数指定要使用的数字基数,从 2 到 36。如果数字基数大于 10,则使用字母字符 ('A'
到 'Z'
) 作为表示中的数字。转换后,end
指向的值将设置为指向字符串中最后一个有效数字字符后面的字符,并返回转换后的整数值。如果字符串不包含有效的数字序列,则返回零 (0) 并且全局变量 errno
设置为 EINVAL
。
还存在这些函数的类似变体,名为 strtoul
、strtoll
和 strtoull
,它们分别解析并返回类型为 unsigned long
、long long
和 unsigned long long
的整数。
strtol 函数是 ISO 标准 C 库 (C89,1989) 的一部分,而 strtoll 函数是在 C99 库 (1999) 中添加的。它作为现有 atoi 函数的更完善的替代品被添加到标准 C 库中。
- strtol 在 OpenGroup.org 上
- 正确且可移植地使用 strtol