求救C++字符串逆序问题
实现字符串翻转,帮我看下,每次都是执行到*p++=*q;语句时崩溃,我看了好几个帖子都是这么写的啊,是函数有问题吗?
- C/C++ code
char * reverse_my(char *str){ char *p=str; char *q=str; while(*q!='\0'){ q++; } q--; while(p<q){ char temp=*p; *p++=*q; *q--=temp; } return str;}[解决办法]
不知道lZ是不是传了一个字符串常量进函数
这样使用没有问题
char buf[] = "12345678";
char* p = reverse_my(buf);
[解决办法]
你这逻辑有问题啊,你用一个字符串自己去倒腾能行吗?需要一个缓冲区
char *p=(char*)malloc(strlen(str));
[解决办法]
传一个字符串指针变量应该可以啊
[解决办法]
看不出有什么不对。
[解决办法]
楼主您好,
1楼正解。
这个函数没问题。
[解决办法]
我知道了,
你肯定是以一个临时变量作为实参了。
int main(){
reverse_my("abcd");//肯定会崩溃,p ,q指向一个不存在的对象。编译器也会警告的。
char cc[] = "abcd";
reverse_my(cc);//OK
}
[解决办法]
一楼正解