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语言程序 5. 译密码,如 Hello,world!,译成密码:Lipps,asvph! 。
很容易发现有一个规律
非字母就不参加运算,而且H译成密码是L,他们的ASCII码相差4
其它的也一样。
C程序:
char data[12]={“H”,”e”,”l”,”l”,”o”,”,”,”w”,”o”,”r”,”l”,”d”,”!“};
char pdata[12];
for(int i=0;i11;i++)
{
if((data[i]=’A’ data[i]= ‘Z’) || (data[i]=’a’ data[i]=’z’))
//该字符是字母则加4
pdata[i]=data[i]+4;
else
//该字符是标点符号或者\n或者其它
pdata[i]=data[i];
}
puts(pdata);
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语言译密码?
读出每个字符,然后给它加上4就可以了,如果要还原,就用每个字符减去4.