strtol

http://baike.baidu.com/view/1874375.htm


最大36进制(0-9,a-z)



       #include <stdlib.h>
       #include <limits.h>
       #include <stdio.h>
       #include <errno.h>


       int
       main(int argc, char *argv[])
       {
           int base;
           char *endptr, *str;
           long val;


           if (argc < 2) {
               fprintf(stderr, "Usage: %s str [base]\n", argv[0]);
               exit(EXIT_FAILURE);
           }


           str = argv[1];
           base = (argc > 2) ? atoi(argv[2]) : 10;


           errno = 0;    /* To distinguish success/failure after call */
           val = strtol(str, &endptr, base);


           /* Check for various possible errors */


           if ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN))
                   || (errno != 0 && val == 0)) {
               perror("strtol");
               exit(EXIT_FAILURE);
           }


           if (endptr == str) {
               fprintf(stderr, "No digits were found\n");
               exit(EXIT_FAILURE);
           }


           /* If we got here, strtol() successfully parsed a number */


           printf("strtol() returned %ld\n", val);


           if (*endptr != '\0')        /* Not necessarily an error... */
               printf("Further characters after number: %s\n", endptr);


           exit(EXIT_SUCCESS);
       }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值