c语言作业题,求高手解答,作业如下。 20
要求把自己的姓名全拼译成密码,编程并上机运行:密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”,”w”,”...
要求把自己的姓名全拼译成密码,编程并上机运行:
密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”,”w”,”x”,”y”,”z”分别用“a”,“b”,“c”,“d”代替。如:要将姓名张三的全拼“zhangsan”译成密码,因此,“zhangsan”应译为“dlerkwer”。 展开
密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”,”w”,”x”,”y”,”z”分别用“a”,“b”,“c”,“d”代替。如:要将姓名张三的全拼“zhangsan”译成密码,因此,“zhangsan”应译为“dlerkwer”。 展开
展开全部
程序如下,希望楼主能够理解和消化,然后自己再写出来哦,这样对学习才有用
#include<stdio.h>
void main()
{
char a[100]={0},b[100]={0};
int i,j;
printf("请输入姓名:");
scanf("%s",a);
for(i=0;i<strlen(a);i++)
{
if(a[i]>='A' && a[i]<='Z')
{
b[i]=a[i]+4;
if((a[i]+4)>'Z')
b[i]=a[i]+4+'A'-'Z'-1;
}
else if(a[i]>='a' && a[i]<='z')
{
b[i]=a[i]+4;
if((a[i]+4)>'z')
b[i]=a[i]+4+'a'-'z'-1;
}
else
{
printf("不是字母,退出程序");
return;
}
}
printf("密码为:%s",b);
}
#include<stdio.h>
void main()
{
char a[100]={0},b[100]={0};
int i,j;
printf("请输入姓名:");
scanf("%s",a);
for(i=0;i<strlen(a);i++)
{
if(a[i]>='A' && a[i]<='Z')
{
b[i]=a[i]+4;
if((a[i]+4)>'Z')
b[i]=a[i]+4+'A'-'Z'-1;
}
else if(a[i]>='a' && a[i]<='z')
{
b[i]=a[i]+4;
if((a[i]+4)>'z')
b[i]=a[i]+4+'a'-'z'-1;
}
else
{
printf("不是字母,退出程序");
return;
}
}
printf("密码为:%s",b);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<string.h>
#include<conio.h>
void Ecodestring(char*str);
bool isupper(char ch);
bool islower(char ch);
int main()
{
char str[30]; //长度随便吧
printf("Please input string\n");
scanf("%s",str);
Ecodestring(str);
printf("%s",str);
getch();
}
void Ecodestring(char*str)
{
int length,i;
length = strlen(str);
for(i = 0;i < length;i++)
{
if(isupper(str[i]))
{
str[i] += 4 % 26;
if(str[i] > 'Z')
{
str[i] -= 26;
}
}
else if(islower(str[i]))
{
str[i] += 4 % 26;
if(str[i] > 'z')
{
str[i] -= 26;
}
}
}
}
bool isupper(char ch){
return (ch >= 'A' && ch <= 'Z');
}
bool islower(char ch){
return (ch >= 'a' && ch <= 'z');
}
额,这是以前的代码,稍微修改过一些,你再看看哪修改一下
判断大小写字母的函数好像在ctype.h里有
#include<string.h>
#include<conio.h>
void Ecodestring(char*str);
bool isupper(char ch);
bool islower(char ch);
int main()
{
char str[30]; //长度随便吧
printf("Please input string\n");
scanf("%s",str);
Ecodestring(str);
printf("%s",str);
getch();
}
void Ecodestring(char*str)
{
int length,i;
length = strlen(str);
for(i = 0;i < length;i++)
{
if(isupper(str[i]))
{
str[i] += 4 % 26;
if(str[i] > 'Z')
{
str[i] -= 26;
}
}
else if(islower(str[i]))
{
str[i] += 4 % 26;
if(str[i] > 'z')
{
str[i] -= 26;
}
}
}
}
bool isupper(char ch){
return (ch >= 'A' && ch <= 'Z');
}
bool islower(char ch){
return (ch >= 'a' && ch <= 'z');
}
额,这是以前的代码,稍微修改过一些,你再看看哪修改一下
判断大小写字母的函数好像在ctype.h里有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个其实很容易的,你查看下ASKII码就行了,按照那个下,先输入你的名字,然后加上一定的数就是了,转到那个需要的(例如A需要转到E,就行了的!不过最后几个需要注意的!用判断语句可以完成)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把名字的ASCII码+4就行了,其他类似处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询