C语言编程,密码翻译的问题 求助(密码翻译c语言)

2023-03-18 21:24:24 密码用途 思思

#includestdio.h

int main()

{

char a[100],d[100];

int i,j=0;

printf("输入要翻译的密码,以“@”结束:\n");

scanf("%s",a);

for(i=0;a[i]!='@';i++)

{

if((a[i]='a'a[i]='z')||(a[i]='A'a[i]='Z'))

{

if(a[i]='a'a[i]'x')

a[i]=a[i]+3;//直接加减相差的位数

else if(a[i]='A'a[i]'X')

{

a[i]=a[i]+3;//先转化成加三位的大写,再转化成小写

a[i]=a[i]+32;//大小写相差32位

}

else if(a[i] = 'X'a[i] = 'Z')//X、Y、Z都应该做处理

a[i]=a[i]+9;

else if(a[i]='x')//x、y、z都应该做处理

a[i] -= 23;

}

d[i]=a[i];

j++;//统计字符的个数,以免后面的输出中有乱码

}

printf("密码的译文是:\n");

for(i=0;i=j;i++)

printf("%c",d[i]);

printf("\n");

return 0;

}这样修改之后应该就好了,根据题目要求,我觉得x、y、z的大小写都应该特殊处理,那个加减的数字是根据ASCII码计算出来的

c语言译密码问题。

#includestdio.h

#includeconio.h

#includemath.h

main()

{

char a;

char b;

printf("请按下空格进入原文转译密码,按下回车进入密码转译原文,按下ESC则退出\n");

a='\0';

a=getch();

if(a==32)

{

printf("此项功能为原文译为密码~请输入你需要转译的...\n");

scanf("%c",b);

if(b=65b=90)

{

if(b=87)

{

b=b-26;

}

b=b+4;

printf("%c\n",b);

}

if(b=97b=122)

{

if(b=119)

{

b=b-26;

}

b=b+4;

printf("%c\n",b);

}

}

if(a==13)

{

printf("此项功能为密码译为原文~请输入你需要转译的密码...\n");

scanf("%c",b);

if(b=65b=90)

{

if(b=68)

{

b=b+26;

}

b=b-4;

printf("%c\n",b);

}

if(b=97b=122)

{

if(b=100)

{

b=b+26;

}

b=b-4;

printf("%c\n",b);

}

}

if(a==27)

{

printf("结束流程...\n");

return 0;

}

printf("程序结束...\n");

}

c语言:译密码

#includestdio.h

main()

{

char s[30];

int i=0;

gets(s);

while(s[i]!='\0')

{

if(s[i]='a's[i]='v'||s[i]='A's[i]='V')

s[i]+=4;

else if(s[i]='w's[i]='z')

s[i]=('a'-1)+4-('z'-s[i]);

else

{

if(s[i]='W's[i]='Z')

s[i]=('A'-1)+4-('Z'-s[i]);

}

i++;

}

puts(s);

//system("pause");

return 0;

}

C语言的密码翻译程序

main()

{

char *str="aabbcc112546XXXyyyzzz";//密码

printf("密码:%s\n",str);

//解密

printf("原文:");

int i=0;

while(str[i]!='\0')

{

if(str[i]64str[i]91)

{

printf("%c",(26-(str[i]-64)+1)+64);

i++;

continue;

}

if(str[i]96str[i]123)

{

printf("%c",(26-(str[i]-96)+1)+96);

i++;

continue;

}

printf("%c",str[i]);

i++;

}

printf("\n");

}

c语言密码翻译‘要详细’

#includestdio.h

#includestring.h

void main()

{

int c,i,S,C,char ch[];

c=getchar(); //获得输入的字符赋值给c变量

printf("请输入电文:");

scanf("%s",ch); //键盘输入字符串保存到ch中

S=strlen(ch); //计算ch的长度保存到s中

For (i=1;is;i++) //循环s次

{

C=(c='A'c='Z')||(c='a'c='z')?(26-i+1):c;

//首先,(c='A'c='Z')||(c='a'c='z')为判断条件,

判断当输入的字符为a-z和A-Z之间的字母时,整个

(c='A'c='Z')||(c='a'c='z')算式值为1,输入非字母值为0.

为1,则将(26-i+1)的值赋给C,否则将c直接赋给C

Printf("%c",C); 然后以字符形式输出c 。

}

}

我没有看到你写的代码哪里有把A-Z 翻译成a-z哦 ,

是我理解题目错误?说实话,我现在还是看不明白题目所谓的翻译规律是什么规律。。

是A翻译为Z 还是说就是大写转小写。

看你的代码应该是想实现大转小,还少加一条判断,

判断如果是大写,就要减32然后输出(ascii 码)

还有好多未定义的变量,大小写也不区分,不知是输入错误,还是初学不去注意那些细节。

反正c语言必须要区分大小写的,否则你上面那段代码有严重问题。

代码至少先得自己看懂,何况写了。没必要非用那些++,--,?:那些表达式,

华而不实。是可以提高一点可怜的执行效率,但可以后续优化,首先必须得保证思路清晰。

很喜欢编程或打算走这条路的话,就不能局限于书本了~要多找代码去阅读

先在这里祝君好运

c语言编写:将用户输入的字符串翻译成密码串:规则如下?

a b c d e f g h i j

例子里输入ab,cd

a是第1个字符,那么换成a后面第1个,也就是b

b是第2个字符,那么换成b后面第2个,也就是d

到这里都没错

c是第4个字符,那么换成后面第4个,也就是g,为什么题目示例是h???

#include stdio.h

#include ctype.h

int main()

{

int i=0;

char str[1001];

fgets(str,1000,stdin);

while(str[i]){

if(islower(str[i]))

str[i]=97+(str[i]+i-96)%26;

else if(isupper(str[i]))

str[i]=65+(str[i]+i-64)%26;

i++;

}

puts(str);

return 0;

}