📄 c08_16.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 + -