试图找出如何在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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容