C++ 反转字符串

C++ 反转字符串,c++,string,reverse,C++,String,Reverse,当尝试使用上述程序反转字符串时,字符串只反转到一半。我不知道问题出在哪里 void reverse(char *s) { char *t=s; while(*t) t++; t--; while(*s) { char temp=*t; *s++=*t; *t--=temp; } } int main() { char s[100]; gets(s); reve

当尝试使用上述程序反转字符串时,字符串只反转到一半。我不知道问题出在哪里

void reverse(char *s)
{
    char *t=s;
    while(*t)
        t++;
    t--;
    while(*s)
    {
        char temp=*t;
        *s++=*t;
        *t--=temp;
    }
}

int main()
{
    char s[100];
    gets(s);
    reverse(s);
    cout<<s;
    return 0;
}
void reverse(字符*s)
{
char*t=s;
while(*t)
t++;
t--;
而(*s)
{
字符温度=*t;
*s++=*t;
*t--=温度;
}
}
int main()
{
chars[100];
获取(s);
反面;

您是否可以将
t
的值存储在
temp
中,然后将
temp
重新分配回
t

您打算将
s
的值存储在
temp
中,以便
t
获取以前在
s
中的值


此外,您不希望在整个字符串中一直交换字符!
如果这样做,您将用最后一个字符交换第一个字符,然后再用第一个字符交换最后一个字符

您希望您的交换循环是:

while(s < t)
{
    char temp=*s;
    *s++=*t;
    *t--=temp;
}
while(s