atof函数,atoi函数,atol函数,gcyt函数,strtod函数,itoa函数

本文详细介绍了C语言中用于字符串与数值相互转换的函数,包括atof、atoi、atol及gcvt等,并通过示例展示了如何使用这些函数进行不同类型的数值转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

atof(将字符串转换成浮点型数)
相关函数
atoi
atolstrtod
表头文件
#include
定义函数
double atof(const char *nptr);
函数说明
atof()
会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('/0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456123e-2
返回值
返回转换后的浮点型数。
附加说明
atof()
与使用strtod(nptr,(char**)NULL)结果相同。
范例
/*
将字符串a 与字符串b转换成数字后相加*/
#include
main()
{
char *a=
-100.23
;
char *b=
200e-2
;
float c;
c=atof(a)+atof(b);
printf(
c=%.2f/n
,c);
}
执行

c=-98.23
 



atoi
(将字符串转换成整型数)
相关函数
atof
atolatrtodstrtolstrtoul
表头文件

#include
定义函数
int atoi(const char *nptr);
函数说明
atoi()
会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('/0')才结束转换,并将结果返回。
返回值
返回转换后的整型数。
附加说明
atoi()
与使用strtol(nptr(char**)NULL10);结果相同。
范例
/*
将字符串a 与字符串b转换成数字后相加*/
#include
mian()
{
char a[]=
-100
;
char b[]=
456
;
int c;
c=atoi(a)+atoi(b);
printf(c=%d/n
,c);
}
执行

c=356
 



atol
(将字符串转换成长整型数)
相关函数
atof
atoistrtodstrtolstrtoul
表头文件

#include
定义函数
long atol(const char *nptr);
函数说明
atol()
会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('/0')才结束转换,并将结果返回。
返回值
返回转换后的长整型数。
附加说明
atol()
与使用strtol(nptr,(char**)NULL,10);结果相同。
范例
/*
将字符串a与字符串b转换成数字后相加*/
#include
main()
{
char a[]=
1000000000
;
char b[]=
234567890
;
long c;
c=atol(a)+atol(b);
printf(
c=%d/n
,c);
}
执行

c=1234567890
 



gcvt
(将浮点型数转换为字符串,取四舍五入)
相关函数
ecvt
fcvtsprintf
表头文件

#include
定义函数
char *gcvt(double number
size_t ndigitschar *buf);
函数说明

gcvt()
用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数。gcvt()ecvt()fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数buf指针所指的空间。
返回值
返回一字符串指针,此地址即为buf指针。
附加说明

范例
#include
main()
{
double a=123.45;
double b=-1234.56;
char *ptr;
int decpt,sign;
gcvt(a,5,ptr);
printf(
a value=%s/n,ptr);
ptr=gcvt(b,6,ptr);
printf(
b value=%s/n
,ptr);
}
执行

a value=123.45
b value=-1234.56
 



strtod
(将字符串转换成浮点数)
相关函数
atoi
atolstrtodstrtolstrtoul
表头文件

#include
定义函数
double strtod(const char *nptr,char **endptr);
函数说明
strtod()
会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('/0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456123e-2
返回值
返回转换后的浮点型数。
附加说明
参考atof()
范例
/*
将字符串abc 分别采用10216 进制转换成数字*/
#include
mian()
{
char a[]=
1000000000
;
char b[]=
1000000000
;
char c[]=
ffff
;
printf(
a=%d/n
,strtod(a,NULL,10));
printf(
b=%d/n
,strtod(b,NULL,2));
printf(
c=%d/n
,strtod(c,NULL,16));
}
执行

a=1000000000
b=512
c=65535

 

itoa函数

char *itoa(int value, char *string, int radix);

把一整数转换为字符串

itoa(i,num,10);

  i 需要转换成字符的数字

  num 转换后保存字符的变量10 转换数字的基数(进制)

10就是说按照10进制转换数字。还可以是2816等等你喜欢的进制类型

 

程序例:

  #include <stdlib.h>

  #include <stdio.h>

  int main(void)

  {

  int number = 12345;

  char string[25];

  itoa(number, string, 10);

  printf("integer = %d string = %s/n", number, string);

  return 0;

  }

  char *itoa(int value,char *string,int radix)

  将整数value转换成字符串存入string,

  radix为转换时所用基数(保存到字符串中的数据的进制基数)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值