Wonderland of C++

不要做一个浮躁的人

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  13 随笔 :: 1 文章 :: 0 评论 :: 0 Trackbacks

用 异或^ 运算可以很轻松的代替中间变量来做很多事情,比如互换两个变量的值,实现字符串的反转。

//字符串反转
void reverse_str(char *ch)   
{
   
int len;
   
int i;
   len 
= strlen(ch)-1;
   
char ctemp;

   
for(i = 0; i < len-i; i++){
         ch[i] 
= ch[i] ^ ch[len-i];
         ch[len
-i] = ch[i] ^ ch[len-i];
         ch[i] 
= ch[i] ^ ch[len-i];
   }

   ch[len
+1= 0;                    
}


测试 
char c[] = "abcdefg";
 reverse_str(c);
 cout<<c<<endl;

//交互变量
void swap(int &a,int &b){
    
//a = a + b;
    
//b = a - b;
    
//a = a - b;
    
    a
=a^b;
    b
=b^a;
    a
=a^b;
}
posted on 2008-10-31 15:32 Robert.Su 阅读(391) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理