首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C 語言整數轉字符串:手寫 itoa 算法(逆序取模法)

     編輯:關於C

算法邏輯

  1. 處理負數:記號、取絕對值;
  2. 循環取模 10 得到各位數字(低位在前);
  3. 存入字符數組;
  4. 逆序輸出或反轉數組。

代碼實現

#include <stdio.h>

void intToStr(int n, char *buf) {
    int i = 0, sign = n;
    if (n < 0) n = -n;
    do {
        buf[i++] = n % 10 + '0';
    } while (n /= 10);
    if (sign < 0) buf[i++] = '-';
    buf[i] = '\0';
    // 反轉
    for (int l = 0, r = i - 1; l < r; ++l, --r) {
        char t = buf[l]; buf[l] = buf[r]; buf[r] = t;
    }
}

int main() {
    char s[20];
    intToStr(-12345, s);
    printf("%s\n", s); // -12345
    return 0;
}

關鍵點

  • do-while 保證 0 也能輸出 "0";
  • 字符轉換 + '0';
  • 標準庫 sprintf(buf, "%d", n) 或 itoa (非標準) 生產首選。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved