用TC编写,大小9.84kB,可以用来对文本文件加密。大家可以来试一下,看看有没有什么问题,
rot13.exe 压缩包
用法是 rot13 源文件 编码文件
但不要使两个参数同名。
ROT13 是一种简单的编码,它把字母分成前后两组,每组13个,编码和解码
的算法相同,仅仅交换字母的这两个部分。
我发现标准的程序无法正确地处理中文,原因好像是几个ctype.h标准函数处理非ASCII字符不太严密
所以我重写了一个,可以处理中文,
以下是源代码:
#include
int main(int argc,char*argv)
{
FILE *in,*out;
char c,tmp;
if(argc<3)
{
printf("SYNTAX: rot13 sourcefile output\n"<img src="images/smilies/face-wink.png" align="absmiddle" border="0">;
exit(1);
}
in=fopen(argv,"r"<img src="images/smilies/face-wink.png" align="absmiddle" border="0">;
if(!in)
{
printf("cannot open sourcefile!\n"<img src="images/smilies/face-wink.png" align="absmiddle" border="0">;
exit(2);
}
out=fopen(argv,"w"<img src="images/smilies/face-wink.png" align="absmiddle" border="0">;
if(!out)
{
printf("cannot open output!\n"<img src="images/smilies/face-wink.png" align="absmiddle" border="0">;
exit(3);
}
while((c=getc(in))+1)
if(c&0x40)
{
tmp=c&0x1f;
if(tmp&&tmp0x0d&&tmp<0x1b)
putc(c-13,out);
else putc(c,out);
}
else putc(c,out);
/*putch(isalpha(c)? tolower(c)<''n''? c+13: c-13: c);*/
return 0;
}