atof:将字串转换成浮点型数
表头文件 #include <stdlib.h>
函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(' ')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
返回值 返回转换后的浮点型数。
附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。
范例 /* 将字符串a 与字符串b转换成数字后相加*/
1 #include<stdlib.h> 2 int main() 3 { 4 char*a="-100.23"; 5 char*b="200e-2"; 6 doublec; 7 c=atof(a)+atof(b); 8 printf(“c=%.2lf ”,c); 9 return 0; 10 }
执行 c=-98.23
atoi:atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数
头文件 #include <stdlib.h>
atoi( ) 函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过isspace( )函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(' ')才结束转换,并将结果返回。如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0
1 //vs2013里调用printf函数请使用预处理命令#define _CRT_SECURE_NO_WARNINGS 2 #include <stdlib.h> 3 #include <stdio.h> 4 5 int main(void) 6 { 7 int n; 8 char *str = "12345.67"; 9 n = atoi(str); 10 printf("n=%d ",n); 11 return 0; 12 }
输出:
n = 12345
与此相关的还有:
atol:把字符串转换成长整型数
1 #include <stdlib.h> 2 #include <stdio.h> 3 int main(void) 4 { 5 long l; 6 char *str = "98765432"; 7 l = atol(str); /* 原来为l = atol(str); */ 8 printf("string = %s integer = %ld ", str, l); 9 return(0); 10 }
执行 string=98765432 integer=98765432
strtoul:将字符串转换成无符号长整型数
strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制数等。当base值为0时会根据情况选择用哪种进制:如果第一个字符是'0',就判断第二字符如果是‘x’则用16进制,否则用8进制;第一个字符不是‘0’,则用10进制。一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。
例子:将十六进制 0xFF,转换成 10进制,得到 255
1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int a; 6 char pNum[]="0xFF"; 7 a=strtoul(pNum,0,0);//最后的0,表示自动识别pNum是几进制 8 printf("%ul ",a); 9 return 0; 10 }
输出:255
strtol:将参数nptr字符串根据参数base来转换成长整型数。
strtod:将字符串转换成浮点数。