注册 登录
编程论坛 C++教室

字符串逆转,请教问题出在哪?

全世界安静 发布于 2012-07-13 08:24, 524 次点击
#include <iostream>
#include <string>
using namespace std;
int strlen(string& s){
int n=0;
while(s[n++]){}
return --n;
}
void revers(string& s,int n1,int n2){
if(n2-n1){
char temp=s[n1];
s[n1]=s[n2];
s[n2]=temp;
revers(s,++n1,--n2);
}
}
int main(){
string s="WangPeng";
revers(s,0,strlen(s)-1);
for(int i=0;i<strlen(s);i++) cout<<s[i];
return 0;
}
编译通过,运行不成功,请教问题出在哪?
4 回复
#2
shapoo2012-07-13 10:22
程序代码:
void revers(string& s, int n1, int n2)
{
    if (n2 - n1>0)
    {
        char temp = s[n1];
        s[n1] = s[n2];
        s[n2] = temp;
        revers(s, ++n1, --n2);
    }
}
#3
peach54602012-07-13 11:26
顶楼上
#4
xbubblex2012-07-14 00:09
支持一下
#5
★逆时光2012-07-14 18:41
二楼正解,得看字符串中字符的个数,如果是奇数个怎么减也不会等于0
1