⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c08_16.c

📁 it can help you know C++ souce program quckily
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>

/*函数声明部分*/
char *encrypt(char *string);
char *decrypt(char *string);

int main()
{
	char	item[80];		/*定义一个字符串*/
	char	*point;			/*定义一个字符指针*/
	char	*pEncrypted;
	char	*pDecrype;

	printf("请输入需要加密的字符串:\n");
	gets(item);
	point=item;
	pEncrypted = encrypt(point);
	printf("\n经过加密的字符串是:\n%s\n", pEncrypted);
	pDecrype = decrypt(pEncrypted);
	printf("\n经过解密的字符串是:\n%s\n", pDecrype);

	free(pEncrypted);		/*释放内存*/
	free(pDecrype);

	return 0;
}

/*函数定义部分*/
char *encrypt(char *string)
{
	char *q,*t;

	/* 给指针q分配内存 ,(char *)实现类型转换 */
	q =(char *)malloc(sizeof(char)*80); 
	if (!q)							/* 分配内存失败,返回给q零值,否则是一个地址 */ 
	{
		printf("没有可用内存空间\n");	/* 分配内存失败,返回空值 */ 
		return 0;
	}
	t = q;
	while (*string!='\0')			/* 将加密的字符存入q指向的空间*/ 
	{
		*q = *string-2;
		string++;
		q++;
	}
	*q = '\0';
	return t; 
	/* 返回时,局部变量q,t消亡,但分配给q的内存并没有收回 。*/
	/* 通过返回值,将这个加密的字符串地址赋给主函数的一个指针 。*/ 
	/* 这样就不会造成内存空间的丢失 。(在主函数中可释放之)*/ 
}

char *decrypt(char *string)		/* encrypt()函数的逆过程,注释省略 */ 
{
	char *q,*t;
	q = (char *)malloc(sizeof(char)*80);
	if( !q ) 
	{
		printf("没有可用内存空间\n");   /* 分配内存失败 */ 
		return 0;
	}
	t = q;
	while (*string!='\0')
	{
		*q=*string+2;
		string++;
		q++;
	}
	*q='\0';
	return t;
}

⌨️ 快捷键说明

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