zoukankan      html  css  js  c++  java
  • strtol 函数

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


    strtol是atoi的增强版,参数base范围从2至36,或0。参数base代表采用的进制方式,0/10是十进制

    1. endptr是一个传出参数,函数返回时指向后面未被识别的第一个字符。例如char *pos; strtol("123abc", &pos, 10);
    strtol返回123,pos指向字符串中的字母a。
    2. 如果字符串开头没有可识别的整数,例如char *pos; strtol("ABCabc", &pos, 10);
    则strtol返回0,pos指向字符串开头,可以据此判断这种出错的情况,而这是atoi处理不了的

    /* 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;
    }
    
    Output:
    The decimal equivalents are: 2001, 6340800, -3624224 and 7340031
  • 相关阅读:
    多表查询
    Java基础
    group by 和 having 用法
    多态
    修改用户权限
    集成测试过程
    系统测试
    软件验收测试通过准则
    性能测试、负载测试、压力测试的区别
    白盒测试
  • 原文地址:https://www.cnblogs.com/fjut/p/2935810.html
Copyright © 2011-2022 走看看