array.cpp

来自「一些VC++的经典实例」· C++ 代码 · 共 101 行

CPP
101
字号
//Program ex7 数组与指针 让加密的文字加密
//设计者  古槿
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "malloc.h"
#define N 99

int main(void)
{
	char input[100];
	char * pdelta;
	short int * pinput0;

	unsigned int seed;
	char delta;
	int length=N;
	int i;

	printf("****************************\n");
	printf("* 能实现解码操作的加密程序 *\n");
	printf("****************************\n\n");

	printf("请输入密码(0~10000):\n");
	scanf("%d",&seed);
	srand(seed);

    pdelta=(char *)malloc(length*(sizeof(char)));

	printf("如果你想在中途退出输入,请按回车(Enter)\n");

	printf("请输入你想要的文字,在屏幕上将显示加密后的文字:\n");

	for(i=0;i<length;i++)
	{
    	input[i]=getche();

		delta=(char)(((double)rand()/(double)RAND_MAX)*100.0);

		switch(input[i])
		{
			case 'a':
				input[i]+=delta;
				break;
			case 'e':
				input[i]+=delta;
				break;
			case 'i':
				input[i]+=delta;
				break;
			case 'o':
			case 'u':
			case ' ':
				input[i]+=delta;
				break;
			default:
				delta=0;
				break;
		}

		*pdelta=delta;
		pdelta++;

		if(input[i]=='\n'||input[i]=='\r')
		{
			length=i+1;
			break;
		}
	}

	input[i++]='\n';//在输入文字最后加入回车换行和终止符
	input[i++]='\r';
	input[i]='\0';

    printf("\n你输入文字的密文是:\n%s",input);

	printf("按任意键开始解密");
	getch();

	pdelta-=length;

	for(i=0;i<length;i++)
		input[i]-=pdelta[i];

	printf("你输入文字的原文是:\n%s",input);

	printf("测试一下指针类型的转换,按任意键继续\n");
	getch();

	pinput0=(short int *)input;

	for(i=0;i<int((length+1)/2);i++)
	{
		printf("%c ",*((char *)pinput0));
 		pinput0++;
	}

	free(pdelta);

	return 1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?