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

如何修改C语言程序使手机号格式化输出时保留前导零

C语言手机号格式化前导零缺失修复方案

问题根因

printf的%d格式化符默认只输出数字的有效位,不会自动补前导零。你的场景中手机号中间段、末尾段都要求固定3位长度,不足3位时需要用0补位,所以需要调整格式化参数。

修复操作

将所有输出语句中对应中间三位、末尾三位的%d替换为%03d即可:

  • %03d表示输出固定3位宽度的十进制整数,长度不足时左侧自动补0
    修改后的完整代码如下:
int main()
{
    int mobBroj,prvicifri,vtoricifri,treticifri;
    scanf("%d", &mobBroj);
    prvicifri = mobBroj / 1000000;
    vtoricifri = (mobBroj % 1000000) / 1000;
    treticifri = mobBroj % 1000;
    if(prvicifri == 70 || prvicifri == 72 || prvicifri == 71)
        printf("0%d/%03d-%03d T-mobile", prvicifri, vtoricifri, treticifri);
    else if(prvicifri == 75 || prvicifri == 76 || prvicifri == 77 || prvicifri == 78)
        printf("0%d/%03d-%03d A1", prvicifri, vtoricifri, treticifri);
    else
        printf("0%d/%03d-%03d LycaMobile", prvicifri, vtoricifri, treticifri);

    return 0;
}

验证效果

修改后输入070120004,输出结果为070/120-004 T-mobile,符合手机号分段格式要求。

内容的提问来源于stack exchange,提问作者Бојан Василевски

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:45:03