C语言程序设计现代方法_数组练习_习题8.6

C语言程序设计现代方法(第二版)_8.6_网络新手的原型是一个名为B1FF的人,他有一种独特的编写消息的方法。下面是一条常见的B1FF公告:
H3Y DUD3,C 15 RILLY COOL!!!
编写一个“B1FF过滤器”,它可以读取用户录入的消息并把此消息翻译成B1FF的表达风格:
Enter message:Hey dude,C is rilly cool
IN B1FF-speak:H3Y DUD3,C is RILLY COOL!!!
程序需要把消息转换成大写字母,用数字代替特定的字母(a->4,b->8,E->3,I->1,o->0,s->5),然后添加10个左右的感叹号。提示:把原始消息存储在一个字符数组中,然后从数组头开始逐个的翻译并显示字符。

#include<stdio.h>
#include<ctype.h>
int main()
{
	printf("Enter message:");
	char ch;
	char a[50];
	int i,j;
	
	for (i=0;(ch=getchar()) !='\n';i++){
		a[i]=ch;
	}//读入字符并将其存储到字符型数组当中 
	for (j=0;j<=i;j++){
		if ((a[j]>='a' && a[j]<='z') || (a[j]>='A' && a[j]<='Z')){
			a[j]=toupper(a[j]);
			switch (a[j]){
				case 'A':printf("4");break;
				case 'B':printf("8");break;
				case 'E':printf("3");break;
				case 'I':printf("1");break;
				case 'O':printf("0");break;
				case 'S':printf("5");break;
				default :printf("%c",a[j]);//数据转换 
			}
		}
		else printf("%c",a[j]);//输出标点符号 
	}
	for (int i=1;i<=10;i++){
		printf("!");
	}
	return 0;
}

思路讲解:把程序分为二个主要部分;1、读取字符并将其保存到数组当中;2、将小写字母及特殊字母进行转换后再输出;

注意:判等运算符的优先级要大于赋值运算符;所以ch=getchar() !='\n'是无效的;正确做法是(ch=getchar()) !='\n'

发布了8 篇原创文章 · 获赞 0 · 访问量 154
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览