#include
#include
char *encrypt(char *string)
{
char *q,*t;
q=(char*)malloc(80*sizeof(char));
if(!q)
{
printf("没有可用内存空间\n");
return 0;
}
t=q;
while(*string='\0')
{
*q=*string-2;
string++;
q++;
}
*q='\0';
return t;
}
char *decrypt(char *string)
{
char *q,*t;
q=(char*)malloc(80*sizeof(char));
if(!q)
{
printf("没有可用内存空间\n");
return 0;
}
t=q;
while(*string='\0')
{
*q=*string+2;
string++;
q++;
}
*q='\0';
return t;
}
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);
}
请问这个结果为什么会出错,谢谢
--------------------next---------------------
#include
#include
//加密
char *encrypt(char *string)
{
char *q,*t;
//由于整串输出,不能申请80个,按需要来
char *temp=string;
int num=0;
while(*temp!='\0')
{
temp++;
num++;
}
q=(char*)malloc(num*sizeof(char));
if(!q)
{
printf("没有可用内存空间\n");
return 0;
}
t=q;
while(*string!='\0')
{
*q=*string-2;
string++;
q++;
}
q='\0';
return t;
}
//解密
char *decrypt(char *string)
{
char *q,*t;
//由于整串输出,不能申请80个,按需要来
char *temp=string;
int num=0;
while(*temp!='\0')
{
temp++;
num++;
}
num++;
q=(char*)malloc(num*sizeof(char));
if(!q)
{
printf("没有可用内存空间\n");
return 0;
}
t=q;
while(*string!='\0')
{
*q=*string+2;
string++;
q++;
}
*q='\0';
return t;
}
void main()
{
char item[80];
for(int num = 0; num < 80; num++)//init
{
item[num]='\0';
}
char *point;
char *pEncrypted;
char *pDecrype;
printf("请输入需要加密的字符串:\n");
gets(item);//不会自动加\0、自动加只有char* p="string"情形
point=item;
pEncrypted=encrypt(point);
printf("\n经过加密的字符串:\n%s\n",pEncrypted);
pDecrype=decrypt(pEncrypted);
printf("\n经过解密的字符串:\n%s\n",pDecrype);
free(pEncrypted);
free(pDecrype);
}
--------------------next---------------------
阅读(1160) | 评论(0) | 转发(0) |