注意:1)当base的值为0时,默认采用10进制转换,但如果遇到‘0x’或‘0X’前置字符这幅使用16进制转换,遇到‘0’前置字符则会使用8进制转换;2)若endptr不为NULL,则会将遇到的不同符合条件而终止的字符指针有endptr传回;若endptr为NULL,则表示该参数无效,或不使用该参数。
strtol函数
long int strtol(const char *str, char **endptr, int base);
函数说明:strtol()会将参数str字符串根据参数base来转换成长整型数(long)。参数base范围从2至36,或0。参数base代表str采用的禁止方式,如base值为10则采用10进制,若base值为16,则采用16进制等。它会扫描参数str字符串,跳出前面的空白字符(如空格,tab缩进等,可以通过isspace()函数来检测),直到遇到数字或正负符号才开始做转换,在遇到非数字或字符串结果是‘\0’结束转换,并将结果返回。
返回值:返回转换后的长整型数;如果不能转换或者str为空字符串,那么返回0(0L);如果转换得到的值超出long int所能表示的范围,函数返回LONG_MAX或LONG_MIN(在limits.h头文件中定义),并将errno的值设置为ERANGE。
注意:1)当base的值为0时,默认采用10进制转换,但如果遇到‘0x’或‘0X’前置字符这幅使用16进制转换,遇到‘0’前置字符则会使用8进制转换;2)若endptr不为NULL,则会将遇到的不同符合条件而终止的字符指针有endptr传回;若endptr为NULL,则表示该参数无效,或不使用该参数。
strtod函数
double strtod(const char *str, char **endptr);
函数说明:strtod()函数会扫描参数str字符串,跳过前面的空白字符(如空格,tab缩进,可以通过isspace()函数来检测),直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时‘\0’才结束转换,并将结果返回。strchr函数参数str字符串可包含正负号,小数点或E(e)来表示指数部分。如123.456或123e-2。若endptr不为NULL,则会将遇到的不符合条件而终止的字符串由endptr传回;若endptr为NULL,则表示该参数无效,或不使用该参数。
返回值:返回转换后的浮点型数;若不能转换或字符串为空,则返回0.0。
gcvt函数
char *gcvt(double number, size_t ndigits, char *buf);
函数说明:gcvt()用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数buf指针所指的空间。
返回值:返回一字符串指针,此地址为buf指针。
atol函数
long atol(const char *str);
函数说明:atol会扫描参数str字符串,跳过前面的空白字符(如空格,tab缩进等,可以isspace()函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时‘\0’才结束转换,并将结果返回。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-30350-4.html
美国只是虚张声势
反正中国门口天天被侦查