C语⾔实现字符串转浮点函数的⽰例
  字符串不仅可以转换为整数,也可以转换为浮点数,字符串转浮点数函数原型如下:
float __cdecl __mingw_strtof (const char * __restrict__, char ** __restrict__);
double __cdecl __mingw_strtod (const char * __restrict__, char ** __restrict__);
  strtof函数返回值是⼀个单精度浮点数,strtod返回值是⼀个双精度浮点数。
  ⾸先来看strtof函数,它的参数有两个。第⼀个参数指向要解释的以空字符结尾的字节字符串。第⼆个参数指向数字后的第⼀个字符。
  该函数⾸先丢弃尽可能多的空⽩字符,直到到第⼀个⾮空⽩字符为⽌。然后从该字符开始,采⽤与浮点字⾯量类似的语法,尽可能多地使⽤有效的字符,并将其解释为数值。指向最后⼀个有效字符之后的字符串其余部分的指针存储在函数第⼆个参数中。
有效的浮点值可以是以下值之⼀:
⼗进制浮点表达式。它由以下部分组成:
(可选)加号或减号
⾮空⼗进制数字序列可选地包含⼩数点字符(由当前C确定locale)(定义有效数字)
(可选),e或者E跟随可选的负号或加号和⾮空序列的⼗进制数字(定义指数)
⼆进制浮点表达式。它由以下部分组成:
(可选)加号或减号
0x或0X
⾮空的⼗六进制数字序列可选地包含⼩数点字符(由当前C确定locale)(定义有效数字)
(可选),p或者P跟随可选的负号或加号和⾮空序列的⼗进制数字(定义指数)
⽆穷⼤表达式。它由以下部分组成:
(可选)加号或减号
INF或者INFINITY⽆视事件
⾮数字表达式。它由以下部分组成:
(可选)加号或减号
NAN或NAN(char_sequence)忽略该NAN部分的情况。char_sequence只能包含字母数字字符。结果是静态的NaN浮点值。任何其他可能被当前安装的C接受的表达式locale
  下⾯通过⼀个简单的例⼦演⽰strtof函数的⽤法。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
char str[30] = "-123.456    5.672451e3  acde";
char *pEnd;
float ret1,ret2;
ret1 = strtof(str, &pEnd);
ret2 = strtof(pEnd, &pEnd);
printf("数字1是: %.3f\n", ret1);
printf("数字2是: %.3f\n", ret2);
字符串函数例子printf("字符串部分是: %s \n", pEnd);
return 0;
}
  代码运⾏结果如下:
  在转换数字的过程中,遇到空⽩字符函数就会退出。同时函数的第⼆个参数会存储退出的位置,当再次调⽤函数的时候,就会接着上次退出的位置继续转换。
strtod函数和strtof函数⽤法基本⼀样,可以直接在上⾯程序的基础上修改。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
char str[30] = "-123.456  5.672451e3  acde";
char *pEnd;
double ret1,ret2;
ret1 = strtod(str, &pEnd);
ret2 = strtod(pEnd, &pEnd);
printf("数字1是: %lf\n", ret1);
printf("数字2是: %lf\n", ret2);
printf("字符串部分是: %s \n", pEnd);
return 0;
}
  将返回值的类型修改为double类型就可以了,执⾏结果如下:
到此这篇关于C语⾔实现字符串转浮点函数的⽰例的⽂章就介绍到这了,更多相关C语⾔字符串转浮点函数内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。