strtol()函数与strtoul()函数的用法

简介: strtol()函数与strtoul()函数的用法


  • strtol
long int strtol (const char* str, char** endptr, int base);
//用来将字符串转换为长整型数(long)

参数:

    str:要转换的字符串

    endstr:第一个不能转换的字符的指针(为NULL时,表示参数无效)

    base :字符串 str 所采用的进制。(为0时,默认采用十进制,'0X'采用十六进制,‘0’采用八进制)

【函数说明】

strtol() 会将参数 str 字符串根据参数 base 来转换成长整型数(long)。参数 base 范围从2 至36,或0。参数base 代表 str 采用的进制方式,如base 值为10 则采用10 进制,若base 值为16 则采用16 进制等。

strtol() 会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。

返回值:

    成功返回转换后的长整型数

    若 不能转换或者 str 为空字符串 ,那么返回 0(0L);

    如果 转换得到的值超出 long int 所能表示的范围 ,函数将返回 LONG_MAX 或 LONG_MIN(在 limits.h 头文件中定义), 并将 errno 的值设置为 ERANGE。


  • strtoul
unsigned long strtoul (const char* str, char** endptr, int base);
//将字符串转换成unsigned long(无符号长整型数)

参数:

    str:要转换的字符串

    endstr:第一个不能转换的字符的指针(为NULL时,表示参数无效)

    base :字符串 str 所采用的进制。(为0时,默认采用十进制,'0X'采用十六进制,‘0’采用八进制)

【函数说明】

strtoul() 会将参数 str 字符串根据参数 base 来转换成无符号的长整型数(unsigned long)。参数 base 范围从2 至36,或0。参数 base 代表 str 采用的进制方式,如 base 值为10 则采用10 进制,若 base 值为16 则采用16 进制数等。

strtoul() 会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。

返回值:  

    若成功返回转换后的无符号长整型数

    若 不能转换或者 str 为空字符串 ,那么返回 0(0L);

    如果 转换得到的值超出  unsigned  long int 所能表示的范围 ,函数将返回 ULONG_MAX(在 limits.h 头文件中定义), 并将 errno 的值设置为 ERANGE。

目录
相关文章
|
2月前
|
数据采集 人工智能 搜索推荐
AI 问答占 52%!长沙别墅装修 GEO 突围:30 天引用率暴涨 40%
周有贵,巴黎学院人工智能博士,GGI商学院GEO首席技术专家,专注AI时代数字营销革新。2025年12月1日,长沙著名别墅设计师张主华专程拜访交流,共探GEO技术在装修设计行业中的AI引流逻辑与实操应用。面对生成式AI问答入口占比突破52%的新趋势,传统SEO正被GEO取代——从链接点击到答案呈现,企业需通过构建灯塔内容、E-E-A-T信任链与结构化数据,让品牌信息被AI优先引用。本次对话揭示:未来流量之争,本质是“被AI推荐”的能力之争。
|
域名解析 存储 安全
HTTP【网络】
HTTP协议格式、HTTP的方法 、HTTP的状态码、HTTP常见的Header
1458 6
HTTP【网络】
|
9月前
|
前端开发
前端使用正则表达式检查是否为十六进制字符串
前端使用正则表达式检查是否为十六进制字符串
233 6
静态方法中可以使用 this 关键字吗?
静态方法中的 `this` 关键字主要用于访问类的静态成员,但在使用时要清楚其指向和限制,避免因错误地使用 `this` 而导致程序出现意外的行为和错误。
|
算法 C语言
[C语言]Pow函数的实现
[C语言]Pow函数的实现
512 0
|
Ubuntu 安全 测试技术
Ubuntu 22.04 Samba 安装和配置
SMB(Server Message Block)是一种跨平台的文件共享协议,它允许不同操作系统之间的文件和打印机共享。在本文中,我们将详细介绍如何在 Ubuntu 服务器上部署和配置一个 SMB 服务器,并涵盖多通道配置、性能测试、安全最佳实践以及一些常见问题。【8月更文挑战第1天】
3005 1
Clion+STM 32Warn : Failed to open device: LIBUSB_ERROR_NOT_SUPPORTED
Clion+STM 32Warn : Failed to open device: LIBUSB_ERROR_NOT_SUPPORTED
679 0
|
存储 芯片
STM32速成笔记(十一)—EEPROM(AT24C02)
本文详细介绍了什么是AT24C02,介绍了它的引脚,读/写时序,给出了应用实例和详细的程序设计。最后,简单介绍了AT24C02的应用场景。
2851 0
STM32速成笔记(十一)—EEPROM(AT24C02)
|
算法 IDE 编译器
Valgrind 报错 disInstr(arm): unhandled instruction: 0xEC510F1E
Valgrind 报错 disInstr(arm): unhandled instruction: 0xEC510F1E
265 0