这篇文章主要介绍linuxcstrtol字符串转int简介,对于目前你搜索查找的问题还是具有挺好的参考价值,希望编程之家小编整理的这个内容对你们有所帮助。如有错误或未考虑完全的地方,望不吝讨教。
之前想用C写MD5函数用法,中间设计大量补码转换的内容,于是就查到了strtol这个函数
然而发觉之前对其认识上有一些疏漏,所以把它的用法记录出来
strtol是一个C语言函数学linux有前途吗,作用就是将一个字符串转换为长整型long,其函数原型为
long int strtol (const char* str,char** endptr,int base);
str是要转换的字符
enptr是指向第一个不可转换的字符位置的表针
base的基数,表示要转换的是几补码的数
这儿有几个注意点:
首先它最终转换的结果是十补码的数字
其次这儿的base指的是str字符中你要转换的是这些东西
即若base为2,并不代表你把str里的东西转化为二补码linux c 查找字符串中标linux,而是你的str中为"0""1"的字符才是有效的。
可以看一个反例:
long int number;
char heihei[] = "010345e10101";
number = strtol(heihei,NULL,2);
printf("%ldn",number);
其结果为:
即其只扫描到了010,之后把010作为二补码转化为10补码linux c 查找字符串,旁边的345e都为非法字符,都不能进行转换。