佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 953|回复: 3

C++ swap via pointer的问题, who 变成 ohw

[复制链接]
发表于 11-7-2006 12:22 AM | 显示全部楼层 |阅读模式
#include <iostream>
using namespace std;

void swap_1 (int a, int b){        
     int t;
     t=a;
     a=b;
     b=t;
}

void swap_2 (int &a, int &b){     
     int t;
     t=a;
     a=b;
     b=t;
}

void swap_3 (int *a, int *b){     
     int t;
     t=*a;
     *a=*b;
     *b=t;
}


int main()
{
  int x=10,y=20;
  cout << "Before x="<< x << " y=" << y << endl;
  swap_1(x,y);
  cout << "After x="<< x << " y=" << y << endl;

  int w=30,v=40;
  cout << "Before w="<< w << " v=" << v << endl;
  swap_2(w,v);
  cout << "After w="<< w << " v=" << v << endl;

  int m=70,n=80;
  cout << "Before m="<< m << " n=" << n << endl;
  swap_3(&m,&n);                                    
  cout << "After m="<< m << " n=" << n << endl;

  return 0;
}


普通swap via pointer大概是这样,但我只能做到20 30变成30 20, 做不到who变ohw这种。在那里能够找到这一类型的例子呢?我想做一些参考。
回复

使用道具 举报


ADVERTISEMENT

发表于 11-7-2006 10:40 PM | 显示全部楼层
who --> ohw
我能想到的就是拆开再重组了
回复

使用道具 举报

发表于 12-7-2006 02:27 PM | 显示全部楼层
用 stack......
回复

使用道具 举报

bigfatsea 该用户已被删除
发表于 15-7-2006 01:22 PM | 显示全部楼层
要达到那样得目标至少函数得参数应该是字符串,用int肯定没啥帮助。。。。

void swap(char* str, char* result){
   int i;

   for (i=0;str!=0;str++)
     i++;

   for (;i>0;i++)
     result++=--str;

   result=0;
}

直接敲的,没有测试。。。。有问题短消息我
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 12-11-2024 03:47 AM , Processed in 0.137783 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表