decipher.cpp

来自「这是一个通过字符串操作来实现文本加密解密的源程序,通过打乱原文本字符串的顺序,隐」· C++ 代码 · 共 59 行

CPP
59
字号
//#include<iostream.h>
#include"decipher.h"
void main()
{
	char s[size],c[20];//c数组用于存储非元音字符段,s数组用于存储要解密的文件
	make_string_empty(s);//首先s清空,因为系统为s分配的内存不一定是空的,可能含有内容
	make_string_empty(c);//首先把清空,原因同上
	char a;
	int mark=0;
	stack decipher(size);//定义栈对象
	int choice=1;
	while(choice)
	 {
	   	 cout<<"请输入要解密的文件内容:"<<endl;
		 gets(s);
		 int L=strlen(s);//求输入要解密的文件长度
		for(int j=0;j<L;j++)
		{
			a=s[j];	
			//cout<<j<<s[j]<<endl;
			if((a!='a')&&(a!='A')&&(a!='u')&&(a!='U')&&(a!='e')&&(a!='E')&&(a!='i')&&(a!='I')&&(a!='o')&&(a!='O'))
			{
				c[mark]=a;//如果字符不是元音,把它保存到c数组中
				mark++; 
                if(j+1==L)
				 {
                   c[mark]='\0';
                   decipher.push_string(reverse(c));
				   make_string_empty(c);
				 }			
			}
			else
			{   
				c[mark]='\0';//遇到元音,则c数组结束
			    if((c[0]!='\0'))
				{
					//cout<<c;
				    decipher.push_string(reverse(c));//把c数组逆转,并压栈
				    make_string_empty(c);//清空c数组
				    mark=0;
				}
				decipher.push(a);//把元音字符压栈
			}
		} 
		cout<<"解密后的文件内容为:"<<endl;
		for(j=0;j<L;j++)
			 	cout<<decipher.pop();//弹栈,输出
		cout<<endl;
		cout<<"继续解密文件:1"<<endl
		 <<"退出解密程序:0"<<endl;
		 cin>>choice;
		 if(choice==0) return;
	} 
	

}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?