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

C 語言整數轉字串手動實作:數字分解與字元陣列組裝

     編輯:關於C語言

C 語言整數轉字串手動實作:數字分解與字元陣列組裝

演算法邏輯

  1. 處理負號:記錄符號,轉為正數處理。
  2. 重複取模 10 獲取個位數字,存入陣列 (逆序)。
  3. 除以 10 移除已處理位。
  4. 最後反轉陣列並加上負號 (如有)。
  5. 補上結束字元 \0。

完整程式碼

#include <stdio.h>
#include <string.h>

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

int main() {
    int n;
    char str[32];
    printf("輸入整數: ");
    scanf("%d", &n);
    int_to_str(n, str);
    printf("字串: %s\n", str);
    return 0;
}

關鍵點

  • 使用 do-while 確保 0 也能正確處理 (輸出 "0")。
  • '0' + digit 將數值轉為 ASCII 字元。
  • 反轉時雙指標交換,原地操作 O(1) 空間。
  • 緩衝區大小 32 足夠 64 位整數 (含符號、結束字元)。

標準庫替代

實務請用 sprintf(buf, "%d", n) 或 snprintf,安全且標準。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved