C语言字符串转换double等类型 您所在的位置:网站首页 float转换为double过程 C语言字符串转换double等类型

C语言字符串转换double等类型

2023-03-02 07:47| 来源: 网络整理| 查看: 265

C语言字符串转换double等类型 1. 使用atof2. 使用 sscanf3. 使用strtod

1. 使用atof atof 语法: #include double atof( const char *str ); 功能:将字符串str转换成一个双精度数值并返回结果。 参数str 必须以有效数字开头,但是允许以“E”或“e”除外的任意非数字字符结尾。例如: x = atof( "42.0is_the_answer" ); x的值为42.0.

例子:

//atof 直接转换str字符串为double型并返回数据 #include #include int main() { char p[] = " 123.4567 "; double f; f=atof(p); printf("%f\n", f); return 0; } 注意:忽略空格

 

2. 使用 sscanf sscanf 语法: #include int sscanf( const char *buffer, const char *format, ... ); 其中: str:要进行格式化读取的字符串。 format:格式化字符串,用于指定格式如何读取str中的内容。 ...:可选参数列表,用于存放读取出来的数据 例如&f。

例子:

#include #include int main() { char p[] = " 123.4567 "; double f; sscanf(p,"%lf",&f); printf("%f\n", f); //sscanf——空格用于分隔符,可以用它来分隔字符串中的不同部分 char str[] = "123 456"; int a, b; sscanf(str, "%d%d", &a, &b); printf("%d%d\n", a,b); return 0; }

在这里插入图片描述

注意: sscanf解析字符串时,空格通常被用作分隔符,可以用它来分隔字符串中的不同部分。

例如,以下代码将把字符串"123 456"中的两个整数读入a和b中,空格用作分隔符:

char str[] = "123 456"; int a, b; sscanf(str, "%d%d", &a, &b);

在这个例子中,sscanf会忽略字符串中的多余空格,并将"123"解析为a的值,将"456"解析为b的值。

 

3. 使用strtod #include double strtod( const char *start, char **end ); 功能:函数返回带符号的字符串start所表示的浮点型数。 第二个参数endptr是一个指向字符指针的指针,用于指向转换后字符串的结尾位置。 如果endptr为NULL,则不返回结尾位置信息。 如果溢出发生,返回HUGE_VAL或 -HUGE_VAL

例子:

#include #include int main() { char p[] = " 123.4567 "; double f = strtod(p, NULL); printf("%f\n", f); return 0; } 注意:strtod函数会自动忽略字符串开头的空格字符,并在遇到第一个非空格字符时开始转换。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有