strtol

头文件:#include <stdlib.h>

定义函数:long int strtol(const char *nptr, char **endptr, int base);

函数说明: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 返回。

返回值:返回转换后的长整型数,否则返回ERANGE 并将错误代码存入errno 中。

附加说明:ERANGE 指定的转换字符串超出合法范围。

范例:将字符串a, b, c 分别采用10, 2, 16 进制转换成数字。
    
    
  1. #include <stdlib.h>
  2. main(){
  3. char a[] = "1000000000";
  4. char b[] = "1000000000";
  5. char c[] = "ffff";
  6. printf("a=%d\n", strtol(a, NULL, 10));
  7. printf("b=%d\n", strtol(b, NULL, 2));
  8. printf("c=%d\n", strtol(c, NULL, 16));
  9. }
#include <stdlib.h>
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));
}

执行结果:
a=1000000000
b=512
c=65535
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值