c語言itoa()函式和atoi()函式詳解(整數轉字元c實現)
c語言提供了幾個標準庫函式,可以將任意型別(整型、長整型、浮點型等)的數字轉換為字串。
1.int/float to string/array:
c語言提供了幾個標準庫函式,可以將任意型別(整型、長整型、浮點型等)的數字轉換為字串,下面列舉了各函式的方法及其說明。
● itoa():將整型值轉換為字串。
● ltoa():將長整型值轉換為字串。
● ultoa():將無符號長整型值轉換為字串。
● gcvt():將浮點型數轉換為字串,取四捨五入。
● ecvt():將雙精度浮點型值轉換為字串,轉換結果中不包含十進位制小數點。
● fcvt():指定位數為轉換精度,其餘同ecvt()。
除此外,還可以使用sprintf系列函式把數字轉換成字串,其比itoa()系列函式執行速度慢
string/array to int/float
c/c++語言提供了幾個標準庫函式,可以將字串轉換為任意型別(整型、長整型、浮點型等)。
● atof():將字串轉換為雙精度浮點型值。
● atoi():將字串轉換為整型值。
● atol():將字串轉換為長整型值。
● strtod():將字串轉換為雙精度浮點型值,並報告不能被轉換的所有剩餘數字。
● strtol():將字串轉換為長整值,並報告不能被轉換的所有剩餘數字。
● strtoul():將字串轉換為無符號長整型值,並報告不能被轉換的所有剩餘數字。
以下是用itoa()函式將整數轉換為字串的乙個例子:
# include
# include
void main (void)
itoa()函式有3個引數:第乙個引數是要轉換的數字,第二個引數是要寫入轉換結果的目標字串,第三個引數是轉移數字時所用 的基數。在上例中,轉換基數為10。10:十進位制;2:二進位制…
itoa並不是乙個標準的c函式,它是windows特有的,如果要寫跨平台的程式,請用sprintf。是windows平台下擴充套件的,標準庫中有sprintf,功能比這個更強,用法跟printf類似:
char str[255];
sprintf(str, 「%x」, 100); //將100轉為16進製表示的字串。
itoa() 將整型值轉換為字串
ltoa() 將長整型值轉換為字串
ultoa() 將無符號長整型值轉換為字串
void main()
int b;
scanf("%d", &b);
char st[32];
getchar();
printf("您輸入的數字一共有%d位", strlen(_itoa(b, st, 10)));
getchar();
理解十進位制整數轉二進位制整數
演算法 第四版 中的習題 1.3.5 中有這樣一段 stacks new stack while n 0 for int d s system.out.print d system.out.println 其作用是列印十進位制整數 n 的二進位制表示。下面解釋該演算法背後的道理。為簡化問題,預設輸入...
1039 十進位制整數轉二進位制
給出乙個十進位制的非負整數x,x 216,把它轉換成二進位制數輸出。輸入為多行,每行乙個整數x,至讀入eof結束。每行輸出x對應的二進位制數值。01 3336553501 11100001 1111111111111111 本題有多種解法 可以用迴圈迭代對2的除法和取餘操作,不過處理的順序與輸出順序...
數值轉換 十進位制正整數轉二進位制
今天朋友去面試,問到一基礎題,實現正整數到二進位制的轉換。因為對基礎掌握的不牢,此題並未能做出正確解答。我在給他講解一番後,他恍然大悟。對於十進位制正整數到二進位制的轉換其實很簡單,用2輾轉相除至結果為1,將餘數和最後的1從下向上倒序寫,就是整數所對應的二進位制值。例如5的二進位制就是101 如圖 ...