加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

试图找出如何在c中输出电话号码?

发布时间:2020-12-16 10:44:44 所属栏目:百科 来源:网络整理
导读:我正在尝试输入一个电话号码并以这种格式(888)999-1111格式打印出来,但是当我试图将其打印出来时,我会得到一些奇怪的输出,这不是我期待的回归.我在输入和打印功能中打印出手机的值,但它们是不同的.输入功能中的那个是正确的但在打印功能中是不正确的.在此先
我正在尝试输入一个电话号码并以这种格式(888)999-1111格式打印出来,但是当我试图将其打印出来时,我会得到一些奇怪的输出,这不是我期待的回归.我在输入和打印功能中打印出手机的值,但它们是不同的.输入功能中的那个是正确的但在打印功能中是不正确的.在此先感谢您的帮助.

int phoneInput(void)
{
    long int phone = 0;

    printf("Input the politicians phone number with no speaces: ");
    scanf("%ld",&phone);
    printf("test : %ld",phone);
return phone;
}

int printPhone(long int phone)
{
    int i = 10; //the number of digits in the phone
    char output[11];

    printf("Test: %ld",phone);

    for (i = 0; i < 10; i ++)
    {
    while (phone > 0)
    {
            output[i] = phone % 10;
            phone /= 10;
    }
    }

    printf("- Phone number: (");
    i = 0;
    for (i = 0; i < 3; i++)
    {
            printf("%d",output[i]);
    }

    printf(")");
    i = 3;
    for(i = 3; i < 6; i++)
    {
            printf("%d",output[i]);
    }
    i = 6;
    printf("-");
    for(i = 6; i < 10; i++)
    {
            printf("%d",output[i]);
    }

return 0;
}

解决方法

您需要将值存储为int,long int或其他数字类型的唯一原因是您必须对其进行算术运算(除非它是家庭作业分配规范所要求的).不要被电话号码由数字组成的事实所迷惑 – 最有意义的是存储为字符串!

如果您可以将电话号码存储为字符串,则应该:

char *phoneInput(void)
{
    static char phone[100];
    printf("Input the politicians phone number with no speaces: ");
    fgets(phone,100,stdin);
    return phone;
}

一旦你有了它,就可以更容易地对它进行字符串操作:

printf("(%.3s)%.3s-%.4sn",phone,phone + 3,phone + 6);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读