📄 decipher.cpp
字号:
//#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -