加密字符串

输入一个全英文的字符串,输出加密后的字符串。
文字信息在传递之前希望先加密。加密的含义是将每个字符转变为另一个字符,加密规则是:
为26个英文字母规定一个序号,a,b,c,d,…,z依次编号为1,2,3,4,…,26.
字符串中每个英文字符的序号加上字符串的长度再加上该字符在字符串中的位置(从0开始计数),得到新字符的序号。如果新序号大于26,则求余得到1-26之间的序号,该字符就转换为新序号对应字符。
大小写都遵从此规则。
例如:要加密的字符串是:AbxY,则长度为4,A转换为E,b转换为g,x转换为d,Y转换为F。

#include<stdio.h>
int main()
{
	int j,n,i;
	int a=0;
	char str[80],ch[80],tran[80];
	printf("Input a word:");
	gets(str);
	j=0;
	while(str[j]!='\0')
	{	a++;
		ch[j]=str[j];
		j++;
	}
	n=j;
	
	for(j=0;j<n;j++)
	{	if((ch[j]>='A')&&(ch[j]<='Z')&&(ch[j]-64+a+j>27))
			ch[j]=(ch[j]-64+a+j)%26+64;
		else if((ch[j]>='a')&&(ch[j]<='z')&&(ch[j]-96+a+j>27))
			ch[j]=(ch[j]-96+a+j)%26+96;
		else
			ch[j]=ch[j]+a+j;
	}
	printf("The encoded word is ");
	for(j=0;j<n;j++)
		putchar(ch[j]);
	printf("\n");
	return 0;
}


版权声明:本文为Angostura原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。