C语言:strtol()函数

头文件:#include <stdlib.h>

strtol() 函数用来将字符串转换为长整型数(long),其原型为:

long int strtol (const char* str, char** endptr, int base);

str 为要转换的字符串,endstr 指向不能转换的第一个字符的地址,base 为字符串 str 所采用的进制。

参数 base 范围从2 至36,或0。如base 值为10 则采用10 进制,若base 值为16 则采用16 进制。

返回值为将base进制的字符串转化为long int类型的十进制数。

注意:

当 base 的值为 0 时,默认采用 10 进制转换。但如果遇到 ‘0x’ 或者 ‘0X’ 前置字符,采用16 进制转换。

str开头和结尾处的空格被忽视,中间的空格被视为非法字符。

例:

char buffer[20]="103cend$3";
char *stop;
printf("%d\n",strtol(buffer, &stop, 8));
printf("%s\n", stop);

输出结果:

67
cend$3

八进制的103即十进制的67。


版权声明:本文为bjyh345原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。