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