之前想用C写MD5函数用法,中间设计大量进制转换的内容,于是就查到了strtol这个函数
但是发现之前对其认识上有一些偏颇,所以把它的用法记录下来
strtol是一个C语言函数,作用就是将一个字符串转换为长整型long,其函数原型为
long int strtol (const char* str, char** endptr, int base);str是要转换的字符
enptr是指向第一个不可转换的字符位置的指针
base的基数,表示要转换的是几进制的数
这里有几个注意点:
首先它最终转换的结果是十进制的数字
其次这里的base指的是str字符中你要转换的是那些东西
即若base为2,并不代表你把str里的东西转化为二进制,而是你的str中为"0" "1"的字符才是有效的。
可以看一个例子:
其结果为:
即其只扫描到了010,然后把010作为二进制转化为10进制,后面的345e都为非法字符,都不能进行转换。