您的位置:首页 > 其它

PTA实验7-3-4 字符串替换 (15分)

2020-03-25 19:08 3455 查看

本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:

原字母 对应字母
A Z
B Y
C X
D W
… …
X C
Y B
Z A
输入格式:
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。

输出格式:
输出在一行中给出替换完成后的字符串。

输入样例:
Only the 11 CAPItaL LeTtERS are replaced.

输出样例:
Lnly the 11 XZKRtaO OeGtVIH are replaced.

#include<stdio.h>
int main()
{
char str[85];
//	str必须要大于80最后的回车是要读入缓冲区的。
int length;
gets(str);
for(int i=0;i<80&&str[i]!='\n';i++)
length=i;

//  下面这种写法会导致最长字符串,无空格,有全部大写字母输出格式错误。不太明白为啥。
//	 char ch=getchar();
//	for(int i=0;i<80&&ch!='\n';i++)
//	{
//		length++;
//		str[i]=ch;
//		ch=getchar();
//	}

//大写英文字母替换
for(int i=0;i<=length;i++)
{
if(65<=str[i]&&str[i]<=90)
{
int t=str[i]-65;
str[i]=90-t;
}
}

// 本题中三种输出都是等价的。大多数情况下面后两种输出等价的
for(int i=0;i<=length;i++)
printf("%c",str[i]);

// printf("%s",str);
// puts(str);
return 0;
}

本题核心还是字符串的各种输入和输出的用法和区别;
scanf(“%c”,str[i])
ch=getchar()
scanf("%[^\n]",str)
gets(str)

printf("%c",str[i])
putchar(str[i])
printf("%s",str)
puts(str)
详细测试和参考链接见下一篇博文:输出大写英文字符。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
m0_46349873 发布了10 篇原创文章 · 获赞 0 · 访问量 203 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: