Deep BlueVBScriptWMIPHPC语言JavaScriptWindows API路由器Windows函数Python

用C语言实现凯撒密码算法

昨天完成了VBS的凯撒密码算法,然后发现Google出来的C语言的凯撒密码算法乱七八糟,很多都是复制粘贴的,还不注明转载地址,连最先的出处都找不到。唉,天下文章一大抄。很多时候,碰到问题Google出来的都是千篇一律的答案,千篇一律也就罢了,还都是没有用的,真受不了。什么?百度一下?百度一下更加什么都不知道!

原来以为C语言的很好写,想不到写了一个小时才写完(不要鄙视我,我承认我是菜鸟),太久没写程序,卡在指针上面了。以下是我写的凯撒密码的C语言算法。你要Java的?对不起,我是一个守旧的人,我不喜欢Java。但是原理都一样吧,不记得在哪里看过一个话,语言并不重要,重要的是算法,语言是会过时的,但是算法不会。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *caesar(const char *str,int offset)
{
	char *start,*ret_str;
	start = ret_str = (char *) malloc(strlen(str) + 1);
	for(;*str!='\0';str++,ret_str++)
	{
		if(*str>='A' && *str<='Z')
			*ret_str = 'A' + (*str - 'A' + offset) % 26;
		else if(*str>='a' && *str<='z')
			*ret_str = 'a' + (*str - 'a' + offset) % 26;
		else
			*ret_str = *str;
	}
	*ret_str = '\0';
	return (char *) start;
}

int main(void)
{
	printf("%s\n","ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	printf("%s\n",caesar("ABCDEFGHIJKLMNOPQRSTUVWXYZ",3));
	return 0;
}

http://ken.gw.to/