关于C语言字母译码
来源:互联网 发布:helloworld的java程序 编辑:程序博客网 时间:2024/05/21 04:22
假如要将”China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母,例如:字母”A”后面第4个字母是”E”.”E”代替”A”。因此,”China”应译为”Glmre”。
- 代码如下:
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h> #include<stdlib.h>#include<math.h>int main(){ char a[10] = { 0 }; int j = 0; scanf("%s", a); int i = 0; for (i = 0; i < sizeof(a) / sizeof(a[0]); i++) { if (a[i]>'A'&&a[i] < 'W')//判断是否为大写字母 { a[i] = a[i] + 4; } else if (a[i]>'a'&&a[i] < 'w')//判断是否为小写字母 { a[i] = a[i] + 4; } } printf("%s\n", a); system("pause"); return 0;}
大多数同学会想到上面那种方法,但上面那种方法还不够严谨,因为根据ASCII表一旦你输入w,它的ASCII值为:119,它的值加上4可不就是a了,因此上面的代码还有bug,因此我们必须要保证我们输入的字母ASCII值加上4还不能越过z,得又回到a,大写字母也是一样。正确的代码如下:
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h> #include<stdlib.h>#include<math.h>int main(){ char a[10] = { 0 }; int j = 0; scanf("%s", a);//输入字符串 int i = 0; for (i = 0; i < sizeof(a) / sizeof(a[0]); i++) { if (a[i]>'A'&&a[i] < 'W')//判断字母是否是大写 { a[i] = a[i] + 4;得到译码值 } else if (a[i] >= 'W'&&a[i]<='Z')//判断字母ASCIIZ值是否可能越界 { a[i] = 'A' + abs('Z' - (a[i] + 3));//使特殊字母加4后回到A的起始位置 } else if (a[i]>'a'&&a[i] < 'w')//判断是否为小写字母 { a[i] = a[i] + 4;得到译码值 } else if(a[i] >= 'w'&&a[i]<='z')//判断字母ASCIIZ值是否可能越界 { a[i] = 'a' + abs('z' - (a[i] + 3));//使特殊字母加4后回到A的起始位置 }} printf("%s\n", a); system("pause"); return 0;}
那让我们来试试这个代码:
- 输入:China
- 输出:Glmra
那我们输入个特殊值:
-输入:WXYX
-输出:ABCD
事实证明上面这个代码更加严谨。
阅读全文
0 0
- 关于C语言字母译码
- 哈夫曼编译码C语言实现
- C语言实现哈夫曼编码与译码
- C语言:哈夫曼树的编码与译码
- C语言实现哈夫曼编码与译码
- Huffuman编码与译码C语言实现
- C语言拾遗:关于数字后面加字母
- 关于C语言打印字母塔的问题
- 字母金字塔c语言
- C语言函数C字母
- C语言函数B字母
- C语言函数D字母
- C语言函数E字母
- C语言函数F字母
- C语言函数G字母
- C语言函数H字母
- C语言函数I字母
- C语言函数K字母
- 搭建IPv6网络环境
- 机器学习-第四周作业——构建深度神经网络
- React学习笔记_ReactRedux应用使用AsyncAwait
- dubbo 常见错误
- CentOS 7下添加swap文件
- 关于C语言字母译码
- hdoj 6235 Permutation
- 安装python
- 官方解读双十一大促直播都看什么指标?
- 细谈那年初做自媒体经验分享
- vi基本操作命令
- Java学习——面向对象之多态
- Java 征途:行者的地图
- 并发编程