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

如何在C语言中将整数变量的各位数字拆分存储到不同变量

在C语言中提取整数的每一位数字

对于整数num = 1562,要提取每一位数字到单独变量,C语言可以通过整数除法和取模运算实现,这是处理数字位的标准方法,不需要依赖字符串操作类函数。

方法一:从低位到高位提取(会修改原变量)

利用%10获取当前最后一位,再用/10去掉最后一位,重复操作直到提取所有位:

#include <stdio.h>

int main() {
    int num = 1562;
    int digit1, digit5, digit6, digit2;

    // 提取个位数字2
    digit2 = num % 10;
    num /= 10; // num 变为 156

    // 提取十位数字6
    digit6 = num % 10;
    num /= 10; // num 变为 15

    // 提取百位数字5
    digit5 = num % 10;
    num /= 10; // num 变为 1

    // 提取千位数字1(此时num仅剩最高位)
    digit1 = num;

    printf("千位:%d,百位:%d,十位:%d,个位:%d\n", digit1, digit5, digit6, digit2);
    return 0;
}

方法二:从高位到低位提取(保留原变量)

通过除以不同数量级的10直接定位目标位,再用取模运算获取该位数字,全程不修改原num:

#include <stdio.h>

int main() {
    const int num = 1562; // 用const确保原变量不被修改
    int digit1 = num / 1000;          // 1562 ÷ 1000 = 1(千位)
    int digit5 = (num / 100) % 10;    // 1562 ÷ 100 =15,15%10=5(百位)
    int digit6 = (num / 10) % 10;     // 1562 ÷10=156,156%10=6(十位)
    int digit2 = num % 10;            // 1562%10=2(个位)

    printf("千位:%d,百位:%d,十位:%d,个位:%d\n", digit1, digit5, digit6, digit2);
    return 0;
}

原理说明

  • 整数除法num / n:当n是10的幂时,会自动截断num的后k位(k为10的幂的位数),比如1562 /100得到15,相当于去掉最后两位。
  • 取模运算num %10:无论num多大,结果都是其最后一位的数字,因为取模10会得到除以10后的余数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:01:07