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

by admin on 2020年1月28日

摘自:

_itoa

1.itoa 

功 能: 把一整数改造为字符串
用 法: char *itoa(int value, char *string, int radix);
详细分解:itoa是希伯来语integer to string
a(将整形数转载为三个字符串,并将值保存在a中卡塔尔
的缩写.在那之中value为要转会的子弹头,
radix是基数的情趣,即先将value转变为几进制的数,之后在保存在a 中.
作用:达成数制之间的转向
比较:ltoa,当中l是long integer(长整形数卡塔尔(قطر‎
备注:该函数的头文件是”stdlib.h”        
程序例:
#include <stdlib.h>
#include <stdio.h>
{
  int main(void)
  int number = 12345;
  char string[25];
  itoa(number, string, 10);
  printf(“integer = %d string = %sn”, number, string);
  return 0;
}

功能:把一整数改造为字符串

在linux下未有itoa这些函数

用法:char * _itoa(int value, char *string, int radix);

      原型:char  *itoa(int   value,char   *string,int   radix) 
          
      用法:#include   <stdlib.h> 
      
      效率:将整数value调换来字符串存入string,
radix为转移时所用基数(保存到字符串中的数据的进制基数 2 8 10 16State of Qatar
      
      表明:再次回到指向调换后的字符串的指针 
      
      举例: 

  详细分解: _itoa是朝鲜语integer to
array(将int整型数转变为八个字符串,并将值保存在数组string中卡塔尔国的缩写.个中value为要转正的整数,
radix是基数的意味,即先将value转变为radix进制的数,之后再保存在string中.

#include<stdlib.h>   
#include<stdio.h>
  int main(void)   
  {   
        int  number   =   12345;   
        char string[25];    
        itoa(number, string,10);   
        printf(“integer   =   %d   string   =   %sn”,   number,  
string);   
        return   0;   
  }

  备注:该函数的头文件是”stdlib.h”

  1. atoi
    字符串转产生整型数:
    int atoi(const char *nptr)
    跳过前边的空格字符,直到遇上数字或正负符号才起来做调换,而再遇上非数字或字符串截止时(‘’卡塔尔(قطر‎才甘休调换,并将结果回到。

  程序例:

范例
/* 将字符串a 与字符串b调换到数字后相加*/
#include
mian()
{
char a[]=”-100”;
char b[]=”456”;
int c;
c=atoi(a)+atoi(b);
printf(c=%dn”,c);
}
执行
c=356

  #include <stdlib.h>

在linux下未有itoa那么些函数

  #include <stdio.h>

linux下的字符转变函数唯有:

  int main()

atof 字符串转产生浮点型数

  {

atoi 字符串转变来整型数: int atoi(const char
*nptr卡塔尔(قطر‎;跳过前边的空格字符,直到遇上数字或正负符号才带头做转变,而再遇到非数字或字符串甘休时(‘’卡塔尔才结束转变,并将结果再次来到。

  int number = 123456;

atol 字符串转变来长整型数

  char string[25];

ecvt 浮点型数调换来字符串,取四舍五入

  _itoa(number, string, 10);

fcvt 浮点型数转变来字符串,取四舍五入

  printf(“integer = %d string = %sn”, number, string);

gcvt 浮点型数转变来字符串,取四舍五入

  return 0;

strtod 字符串转换成浮点型数

  }

strtol 字符串调换来长整型数

  注释:编写翻译系统:VC++6.0,TC不援助。

strtoul 字符串调换成无符号长整型数

正文来源CSDN博客,转发请标注出处:

toascii 将整形数转变合法的ASCII字符串

 

atoi、atof、_itoa、_itow 函数使用

atoi、atof、itoa、itow函数是windows平台下促成字符串与数值相互转变的函数。Linux平台下请使用标准库中的sprintf与sscanf函数。

atoi函数

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

ASCII to integer

功用:将字符串转为integer类型

 

atof函数

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

ASCII to float

职能:将字符串转为double类型

 

对此上述函数,若字符串不可能转车为官方的数值类型,函数将重返0

采纳轨范(来自MSDN):

图片 1图片 2Code
1图片 3#include <stdlib.h>
2图片 4#include
<stdio.h>
3图片 5
4图片 6void main(
void )
5图片 7图片 8图片 9{
6图片 10   char
*s; double x;
int i; long l;
7图片 11
8图片 12   
printf( ” testing atoi,atof,atol function :n” ) ;
9图片 13图片 14   
s = ”  
-2309.12E-15″;    /**//* Test of
atof */
10图片 15   
x = atof( s );
11图片 16   
printf( “atof test: ASCII string: %stfloat:  
%en”, s, x );
12图片 17
13图片 18图片 19   
s = “7.8912654773d210”;  /**//* Test of
atof */
14图片 20   
x = atof( s );
15图片 21   
printf( “atof test: ASCII string: %stfloat:  
%en”, s, x );
16图片 22
17图片 23图片 24   
s = ”   -9885
pigs”;      /**//* Test of
atoi */
18图片 25   
i = atoi( s );
19图片 26   
printf( “atoi test: ASCII string: %sttinteger:
%dn”, s, i );
20图片 27
21图片 28图片 29   
s = “98854
dollars”;     /**//* Test of
atol */
22图片 30   
l = atol( s );
23图片 31   
printf( “atol test: ASCII string: %sttlong:
%ldn”, s, l );
24图片 32}
25图片 33

输出:

atof test: ASCII string:   -2309.12E-15
float: -2.309120e-012

atof test: ASCII string: 7.8912654773d210
float: 7.891265e+210

atoi test: ASCII string:   -9885 pigs   
integer: -9885

atol test: ASCII string: 98854 dollars   
long: 98854

_itoa函数

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

Integer to ASCII

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

 

_itow函数

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

Integer to Wide Char

效果:将Integer类型调换为radix进制,然后以宽字符串的花样寄存在str中

    以上2个函数均有安全祸患(当字符数CEO度相差保存结果时会引致缓冲区溢出),在vs二零零六中编写翻译时会有警报。推荐应用它们的平安版本——
_itoa_s与_itow_s 。

_itoa_s 函数原型如下:

errno_t _itoa_s(

   int value,

   char *buffer,

   size_t sizeInCharacters, //存放结果的字符数老董度

   int radix

);

当调换的结果长度比sizeInCharacters变量大时,由于现身access violation,函数将及时平息,而_itoa函数将三番五次运营。

使用楷模(来自MSDN):

图片 34图片 35Code
1图片 36#include<string.h>
2图片 37#include<stdlib.h>
3图片 38#include<stdio.h>
4图片 39
5图片 40int main(
void )
6图片 41图片 42图片 43{
7图片 44   char
buffer[65];
8图片 45   int r;
9图片 46   
printf( “test _itoa function ! n” ) ;
10图片 47   for(
r=10;
r>=2;
–r )
11图片 48图片 49   图片 50{
12图片 51     
_itoa( -1, buffer, r
); // C4996
13图片 52     // Note:
_itoa is deprecated; consider using _itoa_s instead
14图片 53      printf( “base %d: %s
(%d chars)n”, r, buffer, strnlen(buffer, _countof(buffer))
);
15图片 54   
}
16图片 55
17图片 56   
printf( “test _itoa_s function ! n ” ) ;
18图片 57   for(
r=10;
r>=2;
–r )
19图片 58图片 59   图片 60{
20图片 61      
_itoa_s( -1, buffer,
65, r );
21图片 62      
printf( “base %d: %s (%d chars)n”, r, buffer,
strnlen(buffer, _countof(buffer)) );
22图片 63   
}
23图片 64}
24图片 65

 

输出:

base 10: -1 (2 chars)

base 9: 12068657453 (11 chars)

base 8: 37777777777 (11 chars)

base 7: 211301422353 (12 chars)

base 6: 1550104015503 (13 chars)

base 5: 32244002423140 (14 chars)

base 4: 3333333333333333 (16 chars)

base 3: 102002022201221111210 (21
chars)

base 2: 11111111111111111111111111111111
(32 chars)

 

base 10: -1 (2 chars)

base 9: 12068657453 (11 chars)

base 8: 37777777777 (11 chars)

base 7: 211301422353 (12 chars)

base 6: 1550104015503 (13 chars)

base 5: 32244002423140 (14 chars)

base 4: 3333333333333333 (16 chars)

base 3: 102002022201221111210 (21
chars)

base 2: 11111111111111111111111111111111
(32 chars)

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图