凯撒密码(字符串中每个字符变成后面第四个字符,如a——e)

 题目要求如下:

 

#include<iostream>
using namespace std;
int main()
{

	int n;
	cout<<"1:开始加密||0:退出             ";
	while((cin>>n)!=0)
	{
		cin.sync();  //清空输入缓冲区 ;否则影响cin.getline(str,500)。字符串输入还可用gets(str),同样也要清空之前的输入缓冲区,而且gets()可能导致输入超限 
		char str[500];
		char *p=str;   //字符指针p表示它指向的地址存放的是个字符,这个地址为字符串str的地址,同时也是字符串str第一个字符的地址 
		cin.getline(str,500);  //从缓冲区读取字符,最多500字符,识别回车作为输入结束 ,并且自动在字符串后面加'\0'作为结束符 
		while(*p!='\0')   //p从str头到str尾 
		{
			cout<<(char)(*p+4);   //*p是个字符--char 类型。*p+4 = char+int,*p会先转换成int型(正好是该字符对应的ASCII码) 。最后再(char)强制转换(将int型结果,也对应ASCII码,转成字符) ,实现输出字符后面第四个字符 
			p++;   //p指向下一个字符。因为字符char类型占一个字节,所以地址加一就是下一个字符地址 
		}	
		cout<<endl<<"1:开始加密||0:退出             ";
	}
	return 0; 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值