当前位置:首页 » 编程语言 » c语言电文翻译成密码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言电文翻译成密码

发布时间: 2022-07-09 12:33:59

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

#include<stdio.h>
#include<string.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;i<s;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;
}

③ c语言:译密码

#include “stdio.h”
main()
{char c1;
while ((c1=getchar())!=‘\n’)
{if ((c1>=‘a’&& c1<=‘z’)||(c1>=‘A’ && c1<=‘Z’))
c1=c1+4;
if (c1>‘Z’ && c1<=‘Z’+4|| c1>‘z’)
c1=c1-26;
}
printf(“%d”,c1); }
}
请参考

④ C语言编程,密码翻译的问题~~~求助

#include<stdio.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码计算出来的

⑤ 有一行电文,已按下面规律译成密码即第一个字母变成第26个字母,第I个字母变成第(26-i+1)个C语言题目

main()
{
char a[26],b[26];
int i;
scanf("%s",&a);
for(i=0;a[i]!='\0';i++)
if('A'<=a[i]&&a[i]<='Z')b[i]=155-a[i];
else if('a'<=a[i]&&a[i]<='z')b[i]=219-a[i];
else b[i]=a[i];
b[i]=0;
puts(a);
puts(b);
}

⑥ 密码文 编程 c语言 输入一个英文单词 将单词翻译成密码文 规则是把所有字母用它后面的第三个字母替换

#include <stdio.h>
int main()
{
char c;
while((c=getchar())!='\n'&&c!=EOF)
printf("%c", c>='a'&&c<='y'||c>='A'&&c<='Z'?c+3:c=='z'||c=='Z'?c-23:c);
printf("\n");
return 0;
}

希望楼主及时采纳,谢谢

⑦ c语言 密码电文

不好意思,刚才写的程序有点错误:现更正如下:(请编译人员不要删除!)

#include <stdio.h>
#include <string.h>
#define N 100
void main()
{
char s[N];
int i;
int a;
printf("Input String:");
scanf("%s",s);
for(i=0;i<=strlen(s);i++)
{
if(s[i]>='A'&&s[i]<='Z')
s[i]=26-s[i]+64+1+64;
else if(s[i]>='a'&&s[i]<='z')
s[i]=26-s[i]+96+1+96;
}
printf("%s\n",s);
}

⑧ C语言的密码翻译程序

main()
{
char *str="aabbcc112546XXXyyyzzz";//密码
printf("密码:%s\n",str);
//解密
printf("原文:");
int i=0;
while(str[i]!='\0')
{
if(str[i]>64&&str[i]<91)
{
printf("%c",(26-(str[i]-64)+1)+64);
i++;
continue;
}
if(str[i]>96&&str[i]<123)
{
printf("%c",(26-(str[i]-96)+1)+96);
i++;
continue;
}
printf("%c",str[i]);
i++;
}
printf("\n");
}

⑨ C语言问题:要将"China"译成密码,密码规律是:用原来的字母后面的第4个字母代替原来的字母。

原题的意思是进行一个轮换,w->a,x->b,y->,z->d,所以是:

#include"stdio.h"

void

main()

{

char

name[5];

int

i;

for(i=0;i<5;i++)

{

printf("请输入第%d个字母",i+1);

scanf("

%c",&name[i]);

if(name[i]=='v')

name[i]='z';

else

if(name[i]=='V')

name[i]='Z';

else

name[i]=(name[i]+4)%26;

}

for(i=0;i<5;i++)

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

printf(" ");

}

(9)c语言电文翻译成密码扩展阅读:

#include <stdio.h>

int main(){

printf("Hello, World! ");

return 0;

}

程序的第一行#include <stdio.h>是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。

下一行int main()是主函数,程序从这里开始执行。

下一行printf(...)是 C 中另一个可用的函数,会在屏幕上显示消息 "Hello, World!"。

下一行return 0;终止 main() 函数,并返回值 0。

⑩ c语言编程 为了使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。

whle(c!='\n')
就是表示读取的一个符号不是换行符
如果不是换行符,就继续循环,遇到换行符就循环结束
ejack1979说的不太对,说成了回车换行符
注意,在c语言里面
回车
和换行
是两个符号,
回车是
'\r'
换行是
'\n'