对字符串做异或交换,出现问题
整形做异或交换,可以减少一个中间变量temp
如
int a,b;
a=a^b;
b=a^b;
a=a^b;
实现a,b内容的交换
换成char型有问题,代码如下,有点晕,不知道出啥问题了
#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");
}
//char str[]="I am a student.";
char str[]="I am a student";