C语言中一些将字符串转换为数字的函数小结
C语言atoi()函数:将字符串转换成int(整数) #include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * str); 【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(' ')才结束转换,并将结果返回。 【返回值】返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0。 范例:将字符串a 与字符串b 转换成数字后相加。 #include <stdio.h> #include <stdlib.h> int main () { int i; char buffer[256]; printf ("Enter a number: "); fgets (buffer,256,stdin); i = atoi (buffer); printf ("The value entered is %d.",i); system("pause"); return 0; } 执行结果: Enter a number: 233cyuyan The value entered is 233.
#include <stdlib.h> atol() 函数的名字源于“ascii to long”,用来将字符串转换成长整型数(long),其原型为: long atol(const char * str); 【函数说明】atol() 会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(' ')才结束转换,并将结果返回。 【返回值】返回转换后的长整型数(long);如果 str 不能转换成 long 或者 str 为空字符串,那么将返回 0。 示例:将输入的字符串转换成long。 #include <stdio.h> #include <stdlib.h> int main () { long int li; char buffer[256]; printf ("Enter a long number: "); fgets(buffer,stdin); li = atol(buffer); printf ("The value entered is %ld.n",li); system("pause"); return 0; } 执行结果: Enter a long number: 1200cyuyan The value entered is 1200.
C语言atof()函数:将字符串转换为double(双精度浮点数) #include <stdlib.h> 函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为: double atof (const char* str); atof() 的名字来源于 ascii to floating point numbers 的缩写,它会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(' ')才结束转换,并将结果返回。参数str 字符串可包含正负号、小数点或E(e)来表示指数部分,如123. 456 或123e-2。 【返回值】返回转换后的浮点数;如果字符串 str 不能被转换为 double,那么返回 0.0。 温馨提示:ANSI C 规范定义了 stof()、atoi()、atol()、strtod()、strtol()、strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习;使用 atof() 与使用 strtod(str,NULL) 结果相同。另外在 C99 / C++11 规范中又新增了5个函数,分别是 atoll()、strtof()、strtold()、strtoll()、strtoull(),在此不做介绍,请大家自行学习。 范例: #include <stdio.h> #include <stdlib.h> int main(){ char *a = "-100.23",*b = "200e-2",*c = "341",*d = "100.34cyuyan",*e = "cyuyan"; printf("a = %.2fn",atof(a)); printf("b = %.2fn",atof(b)); printf("c = %.2fn",atof(c)); printf("d = %.2fn",atof(d)); printf("e = %.2fn",atof(e)); system("pause"); return 0; } 执行结果: a = -100.23 b = 2.00 c = 341.00 d = 100.34 e = 0.00 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |