_itoa atoi、atof、itoa、itow _itoa_s 类型转换使用说明

头文件<stdlib.h>或<stdio.h>

一、 atof()

头文件#include<stdlib.h>/include<cstdlib>

原型:double atof(const char *nptr);

作用:把字符串转换成浮点数,直至遇到第一个空格。

二、 itoa()

头文件#include<stdlib.h>/include<cstdlib>

原型:char* itoa(int value,char* string,int radix);

作用:将value所代表的整数转换为字符串。其中,value是要转换的整数值,string是存储转换后值的字符数组,radix代表进制,radix=10就是十进制,radix=2就是二进制。

下面是我在使用这个函数时遇到的一些问题,

1. 第二个参数只能是char*,不能是string;

2. 第二个参数在使用之前必须提前分配存储空间,在C++中就是new一块内存。

三、atoi()

头文件: #include<stdlib.h>/#include<cstdlib>

原型:int atoi(const char *nptr);

作用:把字符串转换成整型数。如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。

1.

_itoa函数

原型:char *_itoa( int value, char *str, int radix );//2<=radix<=36

Integer to ASCII

作用:将Integer类型转换为radix进制,然后以ASCII字符串的形式存放在str中

2.

_itow函数

wchar_t * _itow( int value, wchar_t *str, int radix ); //2<=radix<=36

Integer to Wide Char

作用:将Integer类型转换为radix进制,然后以宽字符串的形式存放在str中

    以上2个函数均有安全隐患(当字符数组长度不足保存结果时会导致缓冲区溢出),在vs2008中编译时会有警告。推荐使用它们的安全版本—— _itoa_s与_itow_s 。

3. long atol(const char *nptr);
函数说明
atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。
返回值
返回转换后的长整型数。
附加说明
atol()与使用strtol(nptr,(char**)NULL,10);结果相同。

4.char *gcvt(double number,size_t ndigits,char *buf);
函数说明
gcvt()用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数buf指针所指的空间。

5.double strtod(const char *nptr,char **endptr);
函数说明
strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。
返回值
返回转换后的浮点型数。



四、sprintf 将字串格式化。

  头文件 #include<stdio.h>

  语法: int sprintf(string format, mixed [args]...);

       返回值:字符串长度(strlen)

  1. 处理字符方向。-负号时表时从后向前处理。 

  2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。 

  3. 字符总宽度。为最小宽度。 

  4. 精确度。指在小数点后的浮点数位数。 

       % 印出百分比符号,不转换。 

  b 整数转成二进位。 

  c 整数转成对应的 ASCII 字元。 

  d 整数转成十进位。 

  f 倍精确度数字转成浮点数。 

  o 整数转成八进位。 

  s 整数转成字串。 

  x 整数转成小写十六进位。 

  X 整数转成大写十六进位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值