【c语言现代方法第七章编程题4】 求大佬解答-- 编写程序可以把字母格式的电话号码翻译成数值格式 2=ABC等

如题所述

你的问题关键 是如何 把 电话机 键盘字母 翻译成 数字。
可以用 表格:
int key[26]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9};
char s[27];
若 ( (s[i] >= 'A') && (s[i] <= 'Z') ) 则 翻译成 数字 key[ s[i]-'A' ]
---
验证键盘 字母-〉数字 程序:
#include<stdio.h>
int main(){
int i;
int key[26]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9};
char s[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (i=0;i<strlen(s);i++){
printf("%c %d\n",s[i],key[s[i]-'A']);
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-01
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
char c;
printf("enter phone number:");
while((c=getchar())!='\n')
{
if('A'<=c&&c<='Z')
c=(2+(c-'A')/3);
else
break;
printf("%c",c);
}

return 0;
}
第2个回答  2016-12-26
详细点,最好有完整的题目追问

根据对应关系{2=ABC,3=DEF,4=GHI,5=JKL,6=MNO,7=PQRS,8=TUV,9=WXYZ}
编写程序,将电话号码中的字母翻译成数字,缘由数字保持不变。

追答

可以建立一个字母和数字间的对应关系,比如建立两个数组,一个存数字,一个存字母。然后遍历整个电话号码,找出每个字母串,和字母数组中存的比较,找到后根据对应关系找到数组中对应的数,替换掉字母串。
大概是这样,当然根据具体题目的要求还可以做不同的优化

相似回答