當前位置:編程學習大全網 - 源碼下載 - itoa在C語言中的作用是什麽,如何使用?

itoa在C語言中的作用是什麽,如何使用?

Itoa是壹個廣泛使用的非標準C語言擴展函數。因為它不是標準的C語言函數,所以不能在所有編譯器中使用。

使用。然而,大多數編譯器(如Windows上的編譯器)通常在頭文件中包含這個函數。在中具有相反功能的函數是atoi。函數:將整數轉換成字符串。

使用

*itoa(int

值,

*字符串,

(同Internationalorganizations)國際組織

基數);

頭文件:

程序示例:

#包括

#包括

(同Internationalorganizations)國際組織

主()

{

(同Internationalorganizations)國際組織

數字

=

123456;

string[25];

itoa(編號,

字符串,

10);

printf("整數

=

%d

=

%s\n ",

號,

字符串);

返回

0;

}

/*

實現itoa功能的源代碼

*/

*myitoa(int

數字,字符

*str,int

基數)

{

/*

索引列表

*/

index[]= " 0123456789 abcdefghijklmnopqrstuvwxyz ";

無符號的

unum

/*

中間變量

*

(同Internationalorganizations)國際組織

i=0,j,k;

/*

確定unum的值。

*/

if(radix = = 10 & amp;& ampnum & lt0)

/*

十進制負數

*/

{

unum=(無符號)-num;

str[i++]= '-';

}

其他

unum=(無符號)num

/*

其他情況

*/

/*

反向序列

*/

{

str[i++]=index[unum%(無符號)基數];

unum/=基數;

} while(unum);

str[I]= ' \ 0 ';

/*

變化

*/

if(str[0]=='-')

k = 1;

/*

十進制負數

*/

其他

k = 0;

/*

將原來的“/2”改為“/2.0”,以保證num在16~255之間,radix等於16時能得到正確的結果。

*/

for(j = k;j & lt=(I-1)/2.0+k;j++)

{

num = str[j];

str[j]= str[I-j-1+k];

str[I-j-1+k]= num;

}

返回

str

}

itoa的第三個參數用於將數字轉換成不同的十進制系統。例如:

#包括

#包括

(同Internationalorganizations)國際組織

主要(無效)

{

(同Internationalorganizations)國際組織

數字

=

12345;

string[25];

itoa(編號,

字符串,

10);

//十進制轉換

printf("整數

=

%d

=

%s\n ",

號,

字符串);

itoa(編號,

字符串,

16);

//按16轉換。

printf("整數

=

%d

=

%s\n ",

號,

字符串);

返回

0;

}

輸出結果:

整數

=

12345

=

12345

-說明12345的十進制表示是12345。

整數

=

12345

=

3039

-說明12345的十六進制表示是0x3039。

但是,需要註意的是,itoa不是壹個標準的C函數,它是Windows特有的。如果想寫跨平臺的程序,請使用sprintf。

我們用小數來表示吧:)

MSDN的例子

例子

/*

ITOA。丙:

程序

轉變

整數

關於

各種各樣的

*

大小

用線串

各種各樣的

半徑。

*/

#包括

#包括

空的

主(

空的

)

{

緩沖器[20];

(同Internationalorganizations)國際組織

=

3445;

長的

l

=

-344115L;

無符號的

長的

保險商實驗所

=

1234567890 ul;

_itoa(

我,

緩沖區,

10

);

printf(

“字符串

關於

整數

%d

(基數

10):

%s\n ",

我,

緩沖器

);

_itoa(

我,

緩沖區,

16

);

printf(

“字符串

關於

整數

%d

(基數

16):

0x%s\n ",

我,

緩沖器

);

_itoa(

我,

緩沖區,

2

);

printf(

“字符串

關於

整數

%d

(基數

2):

%s\n ",

我,

緩沖器

);

_ltoa(

我,

緩沖區,

16

);

printf(

“字符串

關於

長的

(同Internationalorganizations)國際組織

%ld

(基數

16):

0x%s\n ",

我,

緩沖器

);

_ultoa(

ul,

緩沖區,

16

);

printf(

“字符串

關於

無符號的

長的

%lu

(基數

16):

0x%s\n ",

ul,

緩沖器

);

}

輸出

關於

整數

3445

(基數

10):

3445

關於

整數

3445

(基數

16):

0xd75

關於

整數

3445

(基數

2):

110101110101

關於

長的

(同Internationalorganizations)國際組織

-344115

(基數

16):

0xfffabfcd

關於

無符號的

長的

1234567890

(基數

16):

0x499602d2

指定要轉換的底數的基數,其值似乎在1-36之間。

這不是C標準庫中的函數,而是Windows平臺下的擴展。標準庫中有sprintf,比這個更強大,用法和printf差不多:

str[255];

sprintf(str,

" %x ",

100);

//將100轉換成十六進制表示法的字符串。

  • 上一篇:股票中VOL MACD KDJ RSI BIAS CCI分別表示什麽意思?
  • 下一篇:課程管理應用程序源代碼
  • copyright 2024編程學習大全網