读书人

C++字符串逆序有关问题

发布时间: 2012-03-23 12:06:21 作者: rapoo

求救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
}
[解决办法]
一楼正解

读书人网 >C++

热点推荐