C语言stdlib头文件(stdlib.h)中strtol函数的用法及代码示例。
用法:
long int strtol (const char* str, char** endptr, int base);
将字符串转换为长整数
long int
价值。如果endptr不是空指针,该函数还会设置endptr指向数字后的第一个字符。该函数首先丢弃必要数量的空白字符,直到找到第一个非空白字符为止。然后,从该字符开始,采用尽可能多的有效字符,这些字符遵循的语法取决于base参数,并将其解释为数值。最后,一个指向第一个字符的指针,该字符位于整数表示形式之后str存储在由指向的对象中endptr。
如果值base如果为零,则预期的语法类似于整数常量的语法,该整数常量由以下各项组成:
- 可选的符号字符(
+
或者-
) - 可选的前缀,表示八进制或十六进制的基数(
"0"
或者"0x"/"0X"
分别) - 十进制数字序列(如果未指定基本前缀)或八进制或十六进制数字(如果存在特定前缀)
如果base值介于2到36之间,表示整数的格式应为表示指定基数的整数所需的任何有效数字和/或字母(从
'0'
直到'z'
/'Z'
对于基数36)。序列可以可选地在前面加上一个符号(可以是+
或者-
) 而如果base是16,可选"0x"
或者"0X"
字首。如果第一个非空格字符序列str不是上面定义的有效整数,或者如果不存在这样的序列,因为str为空或仅包含空格字符,不执行任何转换。
对于除以外的语言环境
"C"
在语言环境中,可以接受其他主题序列形式。参数
- str
- C-string以整数表示。
- endptr
- 引用类型的对象
char*
,其值由函数设置为中的下一个字符str数值之后。
此参数也可以是空指针,在这种情况下不使用。 - base
- 确定有效字符及其解释的数字基数(基数)。
如果是这样0
,所用的基数由序列中的格式确定(请参见上文)。
返回值
成功后,函数将转换后的整数返回为long int
值。如果无法执行有效的转换,则返回零值(
0L
)。如果读取的值超出可表示的值范围达
long int
,函数返回LONG_MAX或者LONG_MIN(在<climits>), 和errno被设定为ERANGE。示例
/* strtol example */
#include <stdio.h> /* printf */
#include <stdlib.h> /* strtol */
int main ()
{
char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";
char * pEnd;
long int li1, li2, li3, li4;
li1 = strtol (szNumbers,&pEnd,10);
li2 = strtol (pEnd,&pEnd,16);
li3 = strtol (pEnd,&pEnd,2);
li4 = strtol (pEnd,NULL,0);
printf ("The decimal equivalents are: %ld, %ld, %ld and %ld.\n", li1, li2, li3, li4);
return 0;
}
输出:
The decimal equivalents are: 2001, 6340800, -3624224 and 7340031 |
相关用法
- C语言 atof用法及代码示例
- C语言 atoi用法及代码示例
- C语言 atol用法及代码示例
- C语言 atoll用法及代码示例
- C语言 strtod用法及代码示例
- C语言 strtof用法及代码示例
- C语言 strtold用法及代码示例
- C语言 strtoll用法及代码示例
- C语言 strtoul用法及代码示例
- C语言 strtoull用法及代码示例
- C语言 rand用法及代码示例
- C语言 srand用法及代码示例
- C语言 calloc用法及代码示例
- C语言 free用法及代码示例
- C语言 malloc用法及代码示例
- C语言 realloc用法及代码示例
- C语言 abort用法及代码示例
- C语言 atexit用法及代码示例
- C语言 at_quick_exit用法及代码示例
- C语言 exit用法及代码示例
- C语言 getenv用法及代码示例
- C语言 quick_exit用法及代码示例
- C语言 system用法及代码示例
- C语言 _Exit用法及代码示例
- C语言 bsearch用法及代码示例
- C语言 qsort用法及代码示例
- C语言 abs用法及代码示例
- C语言 div用法及代码示例
- C语言 labs用法及代码示例
- C语言 ldiv用法及代码示例
- C语言 llabs用法及代码示例
- C语言 lldiv用法及代码示例
- C语言 mblen用法及代码示例
- C语言 mbtowc用法及代码示例
- C语言 wctomb用法及代码示例
- C语言 wcstombs用法及代码示例
注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C strtol function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。