c语言编程问题

要求把自己的姓名全拼译成密码,编程并上机运行:
密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”,”w”,”x”,”y”,”z”分别用“a”,“b”,“c”,“d”代替。如:要将姓名张三的全拼“zhangsan”译成密码,因此,“zhangsan”应译为“dlerkwer”。

求详细解释,步骤什么的尽量说清楚啦~~~
我的名字全拼是yiliuxin

#include<stdio.h>

int main()
{
char name[20],name_a[20];//定义2个数组用于存放输入的拼音和加密后的拼音
int i=0,j=0;
name[i]=getchar();//首先输入第一个拼音
while(name[i]!='\n')//判断输入的拼音是不是回车键,输入回车键表示输出完成
{
i++; //i+1
name[i]=getchar(); //继续输入下一个拼音
}
i--;//因为如果输入的如果是回车键的话,循环中的i就多加了1,将它减掉
for(j=0;j<=i;j++)
name_a[j]=name[j]+4;//循环操作将输入的拼音都+4,然后存放到另一个数组中
for(j=0;j<=i;j++)
printf("%c",name_a[j]);//将加密后的拼音输出
printf("\n");//为了美观,再输出一个回车,跳一行

}

已测试,成功,只不过w,x,y,z这4个字母+4后的字符可不是拼音了
望采纳~~追问

太复杂了啊,我们刚开始学,这是作业,一看就不是自己写的啦。。。

追答

我都是用简单语法写的呀~~而且还都有解释的。其实一般都是能看懂就不错了,把别人的变成自己的

追问

while以后就看不懂了。。。。。

追答

有解释也看不懂么?你还是先去把我用的这些函数的基本功能看看。然后再分析逻辑吧~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-28
我们首先分3部分

1、输入
char* ch=new char[100]; //分配内存
scanf("%s",&ch);
2、加密
int len=strlen(ch); //长度
int i;
for(i=0;i<=len-1;i++)
{
switch(ch[i])

{
case 'w':ch[i]='a';

case 'x':ch[i]='b';

case 'y':ch[i]='c';

case 'z':ch[i]='d';
default:ch[i]+=4; //其他情况就把ASDII码+4
}
}
3、输出
第2个回答  2014-03-28
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
char str[100];
scanf("%s",str);

for (int i=0;i<strlen(str);i++)
str[i]<='z'&&str[i]>='w' ? str[i]+='a'-'w':str[i]+=4;

printf("%s",str);
system("pause");

}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网