函数encrypt的功能是对传入的字符串src进行加密,然后返回加密后的字符串。其采用的加密算法为:将所有字符转换为其下一个字符。例如:字符串ach,加密后为bdi。请改正下列程序中的错误使其实现要求的功能。
注意:不能修改main函数
运行上述代码会报错
[Warning] address of local variable 'str' returned [-Wreturn-local-addr]
是因为encrypt函数的返回值为函数中定义的一个数组,在运行后,内存会被释放掉;
改正后的代码如下:
#include<stdio.h>
char*encrypt(char*src)
{
static char str[255];
char*p=src;
int i=0;
while(*p!='\0')
{
str[i]= *p+1;
p++;
i++;
}
return str;
}
int main(int argc,char*argv[])
{
char srcstr[255],*dststr;
gets(srcstr);
dststr=encrypt(srcstr);
puts(dststr);
return 0;
}