1. 程式人生 > >C庫-----字串(string)與整型(int)、浮點型(float)等之間的轉換

C庫-----字串(string)與整型(int)、浮點型(float)等之間的轉換

#include <stdlib.h>

1.int/float to string/array:

C語言提供了幾個標準庫函式,可以將任意型別(整型、長整型、浮點型等)的數字轉換為字串,下面列舉了各函式的方法及其說明。
● itoa():將整型值轉換為字串。
● ltoa():將長整型值轉換為字串。
● ultoa():將無符號長整型值轉換為字串。
● gcvt():將浮點型數轉換為字串,取四捨五入。
● ecvt():將雙精度浮點型值轉換為字串,轉換結果中不包含十進位制小數點。
● fcvt():指定位數為轉換精度,其餘同ecvt()。

除此外,還可以使用sprintf系列函式把數字轉換成字串,其比itoa()系列函式執行速度慢

2. string/array to int/float
C/C++語言提供了幾個標準庫函式,可以將字串轉換為任意型別(整型、長整型、浮點型等)。
● atof():將字串轉換為雙精度浮點型值。
● atoi():將字串轉換為整型值。
● atol():將字串轉換為長整型值。
● strtod():將字串轉換為雙精度浮點型值,並報告不能被轉換的所有剩餘數字。
● strtol():將字串轉換為長整值,並報告不能被轉換的所有剩餘數字。
● strtoul():將字串轉換為無符號長整型值,並報告不能被轉換的所有剩餘數字。

以下是用itoa()函式將整數轉換為字串的一個例子:
# include <stdio.h>
# include <stdlib.h>
void main (void)
{
int num = 100;
char str[25];
itoa(num, str, 10);
printf("The number 'num' is %d and the string 'str' is %s. \n" ,
num, str);
}

itoa()函式有3個引數:第一個引數是要轉換的數字,第二個引數是要寫入轉換結果的目標字串,第三個引數是轉移數字時所用 的基數。在上例中,轉換基數為10。10:十進位制;2:二進位制...

itoa並不是一個標準的C函式,它是Windows特有的,如果要寫跨平臺的程式,請用sprintf。是Windows平臺下擴充套件的,標準庫中有sprintf,功能比這個更強,用法跟printf類似:

char str[255];
sprintf(str, "%x", 100); //將100轉為16進製表示的字串。