You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C语言中如何将int转换为指定十进制拆分的char[4]数组

嘿,这个需求我懂了——就是要把整数按特定的分段规则拆进char数组里,对吧?我来给你一步步讲怎么实现:

核心拆分逻辑

先看你的例子:p=2999999要拆成[2, 99, 99, 99],本质是把数字按「1位 + 3组两位」的方式拆分:

  • 第1位:取最高位的单个数字(2)
  • 剩下的6位,每两位一组,依次存入数组的后三个位置(99、99、99)
具体代码实现

利用C语言整数除法和取模的特性,就能轻松完成这个拆分:

#include <stdio.h>

int main() {
    int p = 2999999;
    char k[4];

    // 按规则拆分整数到char数组
    k[0] = p / 1000000;          // 取最高位:2999999 ÷ 10^6 = 2
    k[1] = (p / 10000) % 100;    // 取第2-3位:先除以10^4保留前3位,再取模100得到后两位
    k[2] = (p / 100) % 100;      // 取第4-5位:除以10^2保留前5位,取模100得到最后两位
    k[3] = p % 100;              // 取最后两位:直接取模100

    // 验证结果是否符合要求
    printf("k[0] = %d\n", k[0]);
    printf("k[1] = %d\n", k[1]);
    printf("k[2] = %d\n", k[2]);
    printf("k[3] = %d\n", k[3]);

    return 0;
}
代码说明
  • 整数除法会自动舍去低位,比如2999999 / 10000得到299,刚好保留了前三位数字;
  • 取模100可以快速提取最后两位数字,比如299 % 100得到99;
  • 虽然用的是char数组,但99在有符号char的取值范围(-128~127)内,完全不用担心溢出问题。

运行这段代码后,输出的结果会和你要求的k数组完全一致。

内容的提问来源于stack exchange,提问作者Vis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:07:55