关于C语言加密的算法
2016-02-17 15:47
696 查看
大家有没有碰到这样的问题:
问:编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。
下面我来说下这个问题的解决办法,和思路,我坚信没有办不到的,只有想不到的,有想法就能搞定!使用对应的ascii是比较快的方法。
看下面的代码我来分析下,看注释,,,
#include<stdio.h>
#include<string.h>
int main()
{
charstr[300];
inti,len;
gets(str);//输入字符串
length=strlen(str);//计算字符串的长度
for(i=0;i<length;i++)
{
print(str[i]);//放在循环中调用这个函数
}
return0;
}
void print(char ch)
{
if(ch<='9'&&ch>='0')
{
putchar(ch);
}
//如果是x之前就输出该字母的后3位,如果是x,输出abc,如果是y输出bcd,如果是z输出cde
//这里你可以自己写,看自己的需求
elseif(ch>='x')
{
putchar(ch-23);//abc
putchar(ch-22);
putchar(ch-21);
}
//如果不是x,y,z
就按要求输出后三位字母, 是a的话就输出bcd
else
{
putchar(ch+1);//b
putchar(ch+2);//c
putchar(ch+3);//d
}
}
//供初学者,有不懂的可以给我发邮件329479614@qq.com,大家可以交流下!
问:编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。
下面我来说下这个问题的解决办法,和思路,我坚信没有办不到的,只有想不到的,有想法就能搞定!使用对应的ascii是比较快的方法。
看下面的代码我来分析下,看注释,,,
#include<stdio.h>
#include<string.h>
int main()
{
charstr[300];
inti,len;
gets(str);//输入字符串
length=strlen(str);//计算字符串的长度
for(i=0;i<length;i++)
{
print(str[i]);//放在循环中调用这个函数
}
return0;
}
void print(char ch)
{
if(ch<='9'&&ch>='0')
{
putchar(ch);
}
//如果是x之前就输出该字母的后3位,如果是x,输出abc,如果是y输出bcd,如果是z输出cde
//这里你可以自己写,看自己的需求
elseif(ch>='x')
{
putchar(ch-23);//abc
putchar(ch-22);
putchar(ch-21);
}
//如果不是x,y,z
就按要求输出后三位字母, 是a的话就输出bcd
else
{
putchar(ch+1);//b
putchar(ch+2);//c
putchar(ch+3);//d
}
}
//供初学者,有不懂的可以给我发邮件329479614@qq.com,大家可以交流下!
相关文章推荐
- C++ 模板元中巧用异常让字符串储存在指定类型的tuple中
- 自己用C++写的图像处理软件试用版下载
- c++ 惯用法:定界加锁
- C语言 预处理一(文件包含--#include)
- C++简单实现对象引用计数示例
- 从头再来,C++学习笔记。-01(初窥C++)
- 递归字符串C++编程(1)
- UVa 10474 Where is the Marble?
- 合并石子c++
- leetcode刷题系列C++-Longest Consecutive Sequence
- c++ vector赋值
- C++中的异常操作:throw&try&catch
- c++内存分配
- C++结构(structure)详解
- C语言enum枚举类型解析
- c++ char 运算
- C语言中extern的用法
- hadoop2.7伪分布式模式运行C++程序
- C++ cin.getline()函数的使用
- 线性表详解(c语言版)