密码转换,也就是输入字符串(包括空格和标点符号)并处理成目标字符串。当获取的字符是标点符号时采用ispunct(c)进行判断是不是标点符号,并注意空格不是标点符号要另外单独判断。下面附上代码。
#include<iostream>
#include<string>
using namespace std;
int main()
{
char c[210],d[210];
int length,ok;
char a[28]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char b[28]={'V','W','X','Y','Z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U'};
while(gets(c))
{
if(strlen(c)==10&&c[0]=='E'&&c[1]=='N'&&c[2]=='D'&&c[3]=='O'&&c[4]=='F'&&c[5]=='I'&&c[6]=='N'&&c[7]=='P'&&c[8]=='U'&&c[9]=='T')
break;
else if(strlen(c)==3&&c[0]=='E'&&c[1]=='N'&&c[2]=='D')
{
for(int i=0;i<length;i++)
cout<<d[i];
cout<<endl;
}
else if(strlen(c)==5&&c[0]=='S'&&a[1]=='T'&&a[2]=='A'&&a[3]=='R'&&a[4]=='T')
continue;
else {
length=strlen(c);
for(int i=0;i<strlen(c);i++)
{
if(ispunct(c[i])&&c[i]!=' ')
d[i]=c[i];
else if(c[i]==' ')
d[i]=' ';
else for(int j=0;j<26;j++)
{
if(c[i]==a[j])
{
d[i]=b[j];
ok=1;
break;
}
}
}
}
}
return 0;
}