c/c++ 有一行电文,已按下面规律译成密码: a→z b→y c→x A→Z B→Y C→X ,输出原文

这篇博客讲述了如何解决一个C/C++编程问题,即按照特定规律解密已加密的电文。重点在于字符转换,而非字符串输入方法。博主分享了三种不同的字符串输入方式,并详细解释了字符转换的逻辑,通过计算字符ASCII码的对称性来解密。同时提到了`strlen`函数与`s.size()`在判断字符串长度上的差异,并提醒读者在做题时要分清主次,避免在不重要的细节上浪费时间。
摘要由CSDN通过智能技术生成

这个题做的快吐了 怎么说呢  主要问题是 如何输入一行字符串  有两种方式 第一种是用字符数组 即char  x[10]  还有一种就是string类型 但是由于那个sb谭浩强的书上 给出了好多种方法  里面的gets函数现在根本不能用 我一个sb一直纠结于这个问题   

其实完全没必要纠结于这个问题   因为这个题的重点是怎么转换字符  而不是怎么输入一段不被空格中断的字符串    

总结  第一种可行的就是  

	string s;
	cout << "输入密码:";
	getline(cin, s);

这种不会因为空格中断  

	char c = 0;
	while ((c = getchar()) != '\n')
	{
		;
	}

这种相对来说字符串的那种感觉就没有那么强了

当然 你也可以直接给字符串赋初值  只是这样你每次更换字符串都要改程序 而不是由键盘输入 

下面为完整代码

#include<string>
int main()
{
	void secret(string s);
	string s;
	cout << "输入密码:";
	getline(cin, s);
						//cout << s.size() << endl;  此函数可以用来储存字符串变量的有效字符长度
	secret(s);
	return 0;
}

//  a 65 b 66   y 89  z90  
//  比如 b转到y   66-65 =1  即与a的距离  然后用z减去距离 就是y
//  90-(x-65)  155-x
//  122-(x-97)  219-x
void secret(strin
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值