VC++的一个简单的问题,完全解决加100分

来源:百度知道 编辑:UC知道 时间:2024/05/27 11:07:12
//这个是我的加密函数
char* Decode(char *str)
{
int i, len;
char *aa=NULL;
len=strlen(str);
for (i = 0; i < len; i++)
{
str[i] += 3;//在这里出错了
}
aa=str;
return aa;
}

void main()//我是这么使用的
{
char * a;
a=Decode("aaaaaaaaaa");
cout<<a<<endl;
}

————————————————————
现在说说我的问题和要求:
我是想利用上面的加密函数,在输入一些字符串后,那加密函数经过简单加密处理,然后返回char * 这个类型的值。

如果上面的代码错得离谱,那么如果有朋友能按照我的意思,帮忙写出代码就可以了。

我的QQ是234300935,如果我的问题很复杂……那么...

//这里的str是一个指向常量字符串的指针,是不可以修改的
a=Decode("aaaaaaaaaa");

//bb相当于指针常量,根据定义:指针常量不能改变本身的值,但是可以改变指向的值,所以可以修改
char bb[]="aaaaaaaaa";

#include<iostream>
using namespace std;
char* Decode(char *str)
{
int i, len;
char *aa=NULL;
len=strlen(str);
for (i = 0; i < len; i++)
{

str[i] += 3;//在这里出错了
printf("%c\n",str[i]);
}
aa=str;
return aa;
}

void main()//我是这么使用的
{
char * a;
char bb[]="aaaaaaaaa";
a=Decode(bb);
cout<<a<<endl;
}

“ hnjdbxf”说的对的。最好不要用字面值字符串初始化或赋值char *。
这样只能使char *悄悄地变为const char *,平白增加了只读属性。

#include<iostream>

char* Decode(char *str)
{
size_t len=strlen(str);
for(size_t i=0; i<len; ++i)
{
str[i] += (char)3;
}
return str;
}

int main()
{