天天看点

C语言学习_基本类型_习题7.4

C语言程序设计现代方法_7.4

编写程序可以把字母格式的电话号码翻译成数值格式:

enter phone number: CALLATT

2255288

(字母与数字的对应关系:2=ABC,3=DEF,4=GHI,5=JKL,6=MNO,7=PRS,8=TUV,9=WXY)

如果原始的电话号码包含非字母的字符则保留下来不做变化如:

enter phone number: 1-800-COL-LECT

1-800-265-5328

假设用户输入的字母都是大写字母

/*注意不要把switch表达式与while同时写成getchar(),因为getchar()每执行一次都会重新读入一个数*/
#include<stdio.h>
int main()
{
	char ch;
	
	printf("Enter phone number:");
	do {
		switch (ch=getchar()) {
			case 'A' : case 'B' : case 'C' : 
				printf("2");break;
			case 'D' : case 'E' : case 'F' :
				printf("3");break;
			case 'G' : case 'H' : case 'I' : 
				printf("4");break;
			case 'J' : case 'K' : case 'L' : 
				printf("5");break;
			case 'M' : case 'N' : case 'O' :
				printf("6");break;
			case 'P' : case 'Q' : case 'R' : case 'S': 
				printf("7");break;
			case 'T' : case 'U' : case 'V' : 
				printf("8");break;
			case 'W' : case 'X' : case 'Y' : case 'Z': 
				printf("9");break;
			default :printf("%c",ch);
		}
	} while (ch !='\n');
	
	return 0;
}
           

注:表达式;ch=getchar()读取一个字符,并把字符赋值给变量ch,返回ch的值。