输入一个字符串完成下列加密
A→D,B→E,C→S,D→T,E→I,F→N,G→Y,H→A,I→B,J→C,K→F,L→G,M→H,N→J,O→K,P→L,Q→M,R→O,S→P,T→Q,U→R,V→U,W→V,X→W,Y→X,Z→Z
我的代码:
#include <stdio.h>
int main() {
char ch ;
printf("请输入一串字符:\n");
do {
ch = getchar();//当输入一串字符时,先放在缓存区,然后再一个一个取出if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
//ch = ch + key;
//}
if(ch='A') {
ch ='D';
}
else if(ch='B')
{
ch='E';
}
else if(ch='C')
{
ch='S';
}
else if(ch='D')
{
ch='T';
}
else if(ch='E')
{
ch='I';
}
else if(ch='F')
{
ch='N';
}
else if(ch='G')
{
ch='Y';
}
else if(ch='H')
{
ch='A';
}
else if(ch='I')
{
ch='B';
}
else if(ch='J')
{
ch='C';
}
else if(ch='K')
{
ch='F';
}
else if(ch='L')
{
ch='G';
}
else if(ch='M')
{
ch='H';
}
else if(ch='N')
{
ch='J';
}
else if(ch='O')
{
ch='K';
}
else if(ch='P')
{
ch='L';
}
else if(ch='Q')
{
ch='M';
}
else if(ch='R')
{
ch='O';
}
else if(ch='S')
{
ch='P';
}
else if(ch='T')
{
ch='Q';
}
else if(ch='U')
{
ch='R';
}
else if(ch='V')
{
ch='U';
}
else if(ch='W')
{
ch='V';
}
else if(ch='X')
{
ch='W';
}
else if(ch='Y')
{
ch='X';
}
else if(ch='Z')
{
ch='Z';
}
putchar(ch);
}while((ch != '\n')&&(ch !=' '));
return 0;
}
无法得到我想要的结果,想请教一下正确的代码是怎么样的,还有我的代码的问题
十分感谢!
望采纳,谢谢!
#include <stdio.h>
int main() {
char ch ;
printf("请输入一串字符:\n");
do {
ch = getchar();//当输入一串字符时,先放在缓存区,然后再一个一个取出if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
//ch = ch + key;
//}
if(ch=='A') {
ch ='D';
}
else if(ch=='B')
{
ch='E';
}
else if(ch=='C')
{
ch='S';
}
else if(ch=='D')
{
ch='T';
}
else if(ch=='E')
{
ch='I';
}
else if(ch=='F')
{
ch='N';
}
else if(ch=='G')
{
ch='Y';
}
else if(ch=='H')
{
ch='A';
}
else if(ch=='I')
{
ch='B';
}
else if(ch=='J')
{
ch='C';
}
else if(ch=='K')
{
ch='F';
}
else if(ch=='L')
{
ch='G';
}
else if(ch=='M')
{
ch='H';
}
else if(ch=='N')
{
ch='J';
}
else if(ch=='O')
{
ch='K';
}
else if(ch=='P')
{
ch='L';
}
else if(ch=='Q')
{
ch='M';
}
else if(ch=='R')
{
ch='O';
}
else if(ch=='S')
{
ch='P';
}
else if(ch=='T')
{
ch='Q';
}
else if(ch=='U')
{
ch='R';
}
else if(ch=='V')
{
ch='U';
}
else if(ch=='W')
{
ch='V';
}
else if(ch=='X')
{
ch='W';
}
else if(ch=='Y')
{
ch='X';
}
else if(ch=='Z')
{
ch='Z';
}
putchar(ch);
}while((ch != '\n')&&(ch !=' '));
return 0;
}
=是赋值,==是判断相等
建议改用switch case来实现。
#include <stdio.h>
int main() {
char ch;
printf("请输入一串字符:\n");
do {
ch = getchar();//当输入一串字符时,先放在缓存区,然后再一个一个取出if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
//ch = ch + key;
//}
switch (ch)
{
case 'A':
ch = 'D';
break;
case 'B':
ch = 'E';
break;
case 'C':
ch = 'S';
break;
case 'D':
ch = 'T';
break;
case 'E':
ch = 'I';
break;
case 'F':
ch = 'N';
break;
case 'G':
ch = 'Y';
break;
case 'H':
ch = 'A';
break;
case 'I':
ch = 'B';
break;
case 'J':
ch = 'C';
break;
case 'K':
ch = 'F';
break;
case 'L':
ch = 'G';
break;
case 'M':
ch = 'H';
break;
case 'N':
ch = 'J';
break;
case 'O':
ch = 'K';
break;
case 'P':
ch = 'L';
break;
case 'Q':
ch = 'M';
break;
case 'R':
ch = 'O';
break;
case 'S':
ch = 'P';
break;
case 'T':
ch = 'Q';
break;
case 'U':
ch = 'R';
break;
case 'V':
ch = 'U';
break;
case 'W':
ch = 'V';
break;
case 'X':
ch = 'W';
break;
case 'Y':
ch = 'X';
break;
case 'Z':
ch = 'Z';
break;
}
putchar(ch);
} while ((ch != '\n') && (ch != ' '));
return 0;
}