strtol

来源:互联网 发布:谷歌优化软件 编辑:程序博客网 时间:2024/06/08 19:45
相关函数: atof, atoi, atol, strtod, strtoul
表头文件: #include <stdlib.h>
定义函数: long int strtol(const char *nptr, char **endptr, int base)
函数说明: strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制(字符串以10进制表示),若base值为16则采用16进制(字符串以16进制表示)。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('/0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。
返回值:    返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。
附加说明: ERANGE指定的转换字符串超出合法范围。


将字符串a, b, c 分别采用10, 2, 16进制转换成数字
------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
main()
{
     char a[] = "100";
     char b[] = "100";
     char c[] = "ffff";
     printf("a = %d/n", strtol(a, NULL, 10)); //100
     printf("b = %d/n", strtol(b, NULL, 2));    //4
     printf("c = %d/n", strtol(c, NULL, 16)); //65535
}

"100" ---> 100 (Dec) ---> 100 (Dec)
"100" ---> 100 (BIN) ---> 4    (Dec)
"ffff"---> ffff(Hex) ---> 65535(Dec)


字符串b中的每个字符在内存中都占有一个字节(1 Byte = 8 bits)的空间,将若干个(3个)字节中的内容转换成二进制的数字(字符串"100"去掉双引号后是一个二进制的数字100),让后将该二进制数字以十进制的形式4打印出来
 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 上海市居住证过期了怎么办 上海居住证积分不够怎么办 居住证登录密码忘记怎么办 投靠中考上海居住证怎么办 嫁入广州户口怎么办 上海积分扣完了怎么办 公立小学积分不够怎么办 查不到户口信息怎么办 小孩上不到户口怎么办 离开上海上海户口怎么办? 上海没房户口怎么办 没有房照动迁怎么办 持有上海居住证怎么办准生证 换公司后公积金怎么办 换工作了住房公积金怎么办 以前买的户口怎么办 上海落户积分不够怎么办 带坏受孕了怎么办 对公转账转错了怎么办 对公转错账怎么办 银行卡转错了怎么办 人户分离证明怎么办 暂居证怎么办才快 房产证户口本信息泄漏怎么办 户主迁走了户口怎么办 户口本丢了应该怎么办 户口本遗失了应该怎么办 户口迁出河南怎么办居住证 居住证学历写错怎么办 换单位了档案怎么办 辞职一年了档案怎么办 上海租房网签怎么办 户口本主页掉了怎么办 居转户办理中离职怎么办 上海居转户没有职称怎么办 上海居转户0税单怎么办 居转户出现零税怎么办 遇假记者敲诈怎么办 液氮挥发太快怎么办 高铁上空调太冷怎么办 文登市昆嵛酒店怎么办