c语言strtol()函数如何将字符串转换成长整型数。需要引入的头文件:#include
定义strtol()函数:long int strtol(const char *nptr, char **endptr, int base);
strtol()函数介绍:strtol()会将参数nptr 字符串根据参数base 来转换成长整型数。参数base 范围从2 至36,或0。参数base 代表采用的进制方式,如base 值为10 则采用10 进制,若base 值为16 则采用16 进制等。当base值为0 时则是采用10 进制做转换,但遇到如’0x’前置字符则会使用16 进制做转换。一开始strtol()会扫描参数nptr 字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时(‘\0′)结束转换,并将结果返回。若参数endptr 不为NULL,则会将遇到不合条件而终止的nptr 中的字符指针由endptr 返回。
strtol()函数返回值:返回转换后的长整型数,否则返回ERANGE 并将错误代码存入errno 中。
附加说明:ERANGE 指定的转换字符串超出合法范围。
strtol()函数范例:将字符串a, b, c 分别采用10, 2, 16 进制转换成数字。
#include
main(){
char a[] = “1000000000″;
char b[] = “1000000000″;
char c[] = “ffff”;
printf(“a=%d\n”, strtol(a, NULL, 10));
printf(“b=%d\n”, strtol(b, NULL, 2));
printf(“c=%d\n”, strtol(c, NULL, 16));
}
strtol()函数执行结果:
a=1000000000
b=512
c=65535