黑马程序员技术交流社区
标题: 加密英文的题目想破脑子了 [打印本页]
作者: 赵安庆 时间: 2016-5-10 00:19
标题: 加密英文的题目想破脑子了
//
// main.c
// HM笔试总结(二)
//
// Created by YYSky on 16/5/5.
// Copyright © 2016年 yaomars. All rights reserved.
//
#include <stdio.h>
#include <string.h>
//编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。(C语言)
int main(){
printf("请输入一个字符串:");
char ch[100];
gets(ch);
//定义一个新字符数组来接受加密后的字符串
char newCh[300];
//定义newCh的索引值
int j = 0;
//依次取出ch数组中的字符,然后作判断,并赋值给newCh
for (int i=0; ch!= '\0'; i++) {
if ((ch >= 'a' && ch <= 'w') || ((ch >= 'A' && ch <= 'W'))) {
newCh[j] = ch + 1;
newCh[j+1] = ch + 2;
newCh[j+2] = ch + 3;
j += 3;
} else if(ch == 'x' || ch == 'X'){
newCh[j] = ch + 1;
newCh[j+1] = ch + 2;
newCh[j+2] = ch - 23;
j += 3;
} else if(ch == 'y' || ch == 'Y'){
newCh[j] = ch + 1;
newCh[j+1] = ch - 24;
newCh[j+2] = ch - 23;
j += 3;
} else if(ch == 'z' || ch == 'Z'){
newCh[j] = ch - 25;
newCh[j+1] = ch - 24;
newCh[j+2] = ch - 23;
j += 3;
} else {
newCh[j] = ch;
j ++;
}
}
printf("newCh = %s\n",newCh);
return 0;
}
作者: 赵安庆 时间: 2016-5-10 00:20
66666666666666666666
作者: 妖精的尾巴_wzn 时间: 2016-5-10 00:28
强人一个,继续加油。
作者: 寂静夜凄凉 时间: 2016-5-12 22:36
继续努力加油。。
作者: 烛风小糊涂 时间: 2016-5-12 23:00
本帖最后由 烛风小糊涂 于 2016-5-12 23:02 编辑
比楼主的短一点,(*^__^*) 嘻嘻……话说你那几个if else判断条件可以放到一起啊
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[]) {
- @autoreleasepool {
-
- char str[100];
- char secureStr[100]; //用来储存加密后的字符串
- printf("please enter a string:");
- gets(str); //输入字符串
-
- for (int i=0,j=0; i<strlen(str); i++,j++) {
- if ((str[i] >= 'a' && str[i]<='z') || (str[i]>='A'&& str[i]<='Z'))
- {
- secureStr[j] = str[i]+1; //把满足判断条件的字符按照要求加密
- secureStr[j+1] = secureStr[j]+1;
- secureStr[j+2] = secureStr[j+1]+1;
- j = j + 2; //下标移位
- }
- else secureStr[j] = str[i];
- }
- printf("%s",secureStr);
- }
- return 0;
- }
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |