strtol,strtoll,strtoul, strtoull函数的使用
#include<stdlib.h> // 这个是C标准库,与linux无关。这套函数是通用
long int strtol(const char *nptr, char **endptr, int base);
long long int strtoll(const char *nptr, char **endptr, int base);
unsigned long int strtoul(const char *nptr, char **endptr, int base);
unsigned long long int strtoull(const char *nptr, char **endptr, int base);
说明,第一个参数 nptr是要转化的字符串。第三个参数base说明nptr的进制。base 取值范围 0,2-36
这几个函数会忽略nptr前面的空格( ' ', '\t', '\n' '\f', '\v' '\r' ,由isspace判定为真的字符)
while (*nptr && isspace ( *nptr ) ) ++ nptr;
然后遇到非合法字符结束;
base = 2; 合法字符为0, 1
base = 3; 合法字符为0,1, 2
...
base = 11; 合法字符为0,1,...,9,a(A)
...
base = 36;合法字符为0, 1, ...,9,a(A),...,z(Z)。
字符 a-z,是忽略大小写的,混着来也行,例如 strtol("aA", NULL, 11)依然能得到正确的结果。
函数的第二个参数endptr可以为空,如果不为空,则 endptr 保存函数结束前的那个非合法字符的地址。
如果没有合法字符,则 *endptr = nptr,函数返回0.
例如:
1.
char *endptr;
char nptr[]="123abc";
int ret = strtol(nptr, &endptr, 10 );
由于10进制里没有“数字”a,所以扫描到a,结束。
这样 ret = 123;
endptr = &nptr[3]; ( printf("%s", endptr);将得到字符串 abc )
2.
char nptr[]=" \n\t abc";
int ret = strtol(nptr, &endptr, 10 );
由于函数会忽略nptr前面的空格(' ', '\n'...),所以,从字符a开始扫描,但是遇见的“第一个”即是不合法字符。
所以函数结束。 ret=0; endptr = nptr;
以下的讨论,会认为 nptr 前面没有空格,
即执行过类似于while (*nptr &&isspace ( *nptr ) ) ++ nptr;
如果base 为0.则分3种情况:
如果nptr 以0x(零x)开头,则把nptr当成16进制处理。
如果npstr以0(零)开头,则把nptr当成8进制处理。
否则,把nptr当成10进制。
对于函数执行错误,如传了一个非合法base,则errno会设置相关值
strtol,strtoll,strtoul, strtoull函数的使用相关推荐
- c/c++函数 -strtol strtoll strtoul strtoull 使用注意项cc
说明 在项目开发时,字符串跟整形的转换是普遍需求的一个功能,在c/c++中常用的几个函数包括 strtol strtoll strtoul strtoull. 目前我们的项目里面进行转换的时候都是直接 ...
- c/c++函数 -strtol strtoll strtoul strtoull解读
在项目开发时,字符串跟整形的转换是普遍需求的一个功能,在c/c++中常用的几个函数包括strtol strtoll strtoul strtoull. 目前我们的项目里面进行转换的时候都是直接调用, ...
- strtol strtoll strtoul strtoull应用
在项目开发时,字符串跟整形的转换是普遍需求的一个功能,在c/c++中常用的几个函数包括 strtol strtoll strtoul strtoull. 目前我们的项目里面进行转换的时候都是直接调用, ...
- strtol,strtoll,strtoul, strtoull字符串转化成数字
名字: strtol, strtoll, strtoul, strtoull convert a string to a (signed, unsigned ) long integer string ...
- 函数atof,atoi,atol,strtod,strtol,strtoul 描述
函数atof,atoi,atol,strtod,strtol,strtoul atof(将字串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 # ...
- 11-字符串转换函数(strtod、strtol、strtoul)
字符串转换函数包含在通用工具函数库<strlib.h>中 一:函数strtod(string to double) double strtod(const char *nPtr,char ...
- 函数atof,atoi,atol,strtod,strtol,strtoul
在做项目过程中经常需要把字符串转换成整形数,这时候就需要用到下面几种函数:函数atof,atoi,atol,strtod,strtol,strtoul 函数说明是:该函数会扫描参数中的字符串,跳过前面 ...
- linux c 数字字符串互转 相关函数 atoi、atof、atol、atrtod、strtol、strtoul
一.atoi函数(将字符串转换成整型数) 定义函数 int atoi(const char * nptr); 函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负 ...
- toi,atol,strtod,strtol,strtoul实现类型转换
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://ivanvic.blogbus.com/logs/1920125.html atof(将字符串转换成浮点型数) 相关函数 ...
最新文章
- 网络负载均衡-DNS负载均衡
- angular.animation的使用
- 如何禁止网络爬虫频繁爬自己网站
- biosrecovery什么意思_BIOS中的每个中文是什么意思
- 操作系统上机作业--多线程排序
- linux多线程九宫格,项目实战:Qt九宫格图片资源浏览器(支持window、linux、兼容各国产系统,支持子文件夹,多选,全选,图片预览,行数与列数设置等)...
- 测试工程师值得被尊重!是否有此共鸣!
- WARNING:root:could not open file ‘/etc/apt/sources.list.d
- FCP-报表交付工程师考试经验
- openlayer添加自定义图片图层
- 数据库设计(1)_概念结构设计
- 上微信怎么同时用计算机,怎么在电脑上同时登陆两个微信
- php支付宝接口参数错误,php支付接口_php支付宝支付接口程序及参数详解
- OSPF的5、7类LSA中的FA、cost计算详解
- 03 学生免费注册Pycharm专业版
- 支持nfc的android手机,NFC手机有哪些 2017支持NFC功能的手机推荐 (5)
- 一个屌丝程序猿的人生(三十五)
- 2021-2027全球与中国可持续性蛋白质市场现状及未来发展趋势
- Redis 使用手册
- GPRS连接阿里云物联网平台一
热门文章
- 用python下载辞典
- web.xml 中的listener、 filter、servlet 加载顺序
- Android programming on Mac 之安装Eclipse
- 录制caf 转 mp3
- 是雏还是鹰mdash;mdash;编程规范之代码注释
- cass方格网数据excel_讨论|CASS怎么计算回字型土方? 124
- android签到功能模块,基于android的课堂签到系统.doc
- php延迟更新,ThinkPHP开发指南-模型-高级模型之延迟更新
- 汇编写java模块_java – maven汇编插件moduleset源指令不包括任何文件,不符合附带的模块...
- webase crud查看所有表_Laravel-Gii 可视化代码生成工具 CRUD +GUI