#include <iostream>
using namespace std;
void reverse(char *str)
{
//n为字符串长度
int n=strlen(str)-1;
for(int i=0;i<=n/2;++i){
str[i]=str[i]^str[n-i];
str[n-i]=str[i]^str[n-i];
str[i]=str[i]^str[n-i];
}
cout<<str<<endl;
}
void main()
{
char str[]="I am a student.";
reverse(str);
system("pause");
}
注意
for(int i=0;i<=n/2;++i)
这一句有问题,因为异或本身会变为0,然后输出str后面就截断了
应该改为i<n/2