潇湘馆

加油,努力!

用户操作
[即时聊天] [发私信] [加为好友]
白荷ID:baihe_591
7017次访问,排名14943,好友3人,关注者46人。
baihe.591@163.com
baihe_591的文章
原创 31 篇
翻译 0 篇
转载 2 篇
评论 23 篇
最近评论
jjjjj102310253:不错
zhangxuyu1118:不错,收藏
baihe_591:wormss:
我本来计划是做字符串排序的,但在过程中发现有好多问题,只好从最简单的单元"交换"做起.函数名就没有改,既然交换做好了,那排序就没有问题了.
Scofield_zao:很好啊,对我很有用的!
zwjiong:挺好的,对我这个菜鸟帮助很大
文章分类
    收藏
      相册
      临时
      小游戏
      看你能坚持几秒
      象棋
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 c++指针学习笔记--交换两个字符串数据收藏

       | 旧一篇: c#关机时自动退出程序

      交换两个字符串数据。
      一:字符指针

      1. int main()
      2. {
      3.     void charsort2(char ** ,char **);
      4.         char * s1="abc";
      5.     char * s2="baihe";  
      6.     charsort2 (&s1,&s2);
      7.     cout<<s1<<endl;
      8.     cout<<s2<<endl;    
      9.     return 0;   
      10. }
      11. void charsort2(char **s1,char **s2)
      12. {
      13.     char *p;
      14.     p=*s1;
      15.     *s1=*s2;
      16.     *s2=p;
      17. }

      二:字符数组

      1. int main()
      2. {
      3.     void charsort( char * ,char * );
      4.         char s1[7]="abc";
      5.     char s2[7]="baihe"
      6.     charsort(s1,s2);
      7.     cout<<s1<<endl;
      8.     cout<<s2<<endl; 
      9.     return 0;   
      10. }
      11. void charsort(char *s1,char *s2)
      12. {
      13.     char p[7];
      14.     strcpy(p,s1);
      15.     strcpy(s1,s2);
      16.     strcpy(s2,p);   
      17. }

      三:字符串

      1. int main()
      2. {
      3.     void strsort(string *,string *);
      4.         string s1="abc";
      5.     string s2="baihe";  
      6.     strsort(&s1,&s2);
      7.     cout<<s1<<endl;
      8.     cout<<s2<<endl;    
      9.     return 0;   
      10. }
      11. void strsort(string *s1,string *s2)
      12. {
      13.     string p;
      14.     p=*s1;
      15.         *s1=*s2;
      16.     *s2=p;
      17. }

      四:引用

      1. int main()
      2. {
      3.     void strsort(string &,string &);
      4.         string s1="abc";
      5.     string s2="baihe";  
      6.     strsort(s1,s2);
      7.     cout<<s1<<endl;
      8.     cout<<s2<<endl;    
      9.     return 0;   
      10. }
      11. void strsort(string & s1,string &s2)
      12. {
      13.     string p;
      14.     p=s1;
      15.     s1=s2;
      16.     s2=p;
      17. }

      多谢论坛上朋友的分享.以下为新添方法:

      五:指针引用:

      1. int main()
      2. {
      3.     void charsort2(char*& ,char*&);
      4.     char * s1="abc";
      5.     char * s2="baihe";    
      6.     charsort2 (s1,s2);
      7.     cout<<s1<<endl;
      8.     cout<<s2<<endl;    
      9.     return 0;    
      10. }
      11. void charsort2(char *&s1,char *&s2)
      12. {
      13.     char *p;
      14.     p=s1;
      15.     s1=s2;
      16.     s2=p;
      17. }

      发表于 @ 2008年10月09日 16:50:00|评论(loading...)|编辑|收藏

       | 旧一篇: c#关机时自动退出程序

      评论

      #lqefn 发表于2008-10-10 12:22:56  IP: 125.71.216.*
      没有价值的东西
      #lqefn 发表于2008-10-10 12:22:59  IP: 125.71.216.*
      没有价值的东西
      #crazy115043370 发表于2008-10-10 13:06:36  IP: 123.96.82.*
      新手啊,想问下
      指针变量不是这么写的么char *?
      为什么用char **也可以?这个能解释写么?
      还有就是这个调用函数
      void charsort(char *s1,char *s2)
      {
      char p[7];
      strcpy(p,s1);
      strcpy(s1,s2);
      strcpy(s2,p);
      }

      这个是做什么用的?
      就是把s2的值赋给P?
      #baihe_591 发表于2008-10-10 13:35:24  IP: 218.20.155.*
      对你来说也许没有价值,但对我来说这几个小程序是我两天来学习c++指针的总结.
      #e200602006 发表于2008-10-10 13:36:21  IP: 60.166.215.*
      楼上的,上面的程序是把S1和S2的数据相交换,这是很基本的
      #baihe_591 发表于2008-10-10 13:53:28  IP: 218.20.155.*
      1.应该区分这样两种情况:
      1).char a='c';char *p=&a;
      2).char *p="baihe_591";
      2.char *s1="abc";此处定义s1为一个字符指针,也 就是s1本身就是指针,那么要用一个指针来指向s1,就要用到指针的指针,即char **;
      3.因为此处s1和s2的实参是字符数组s1[7]和s2[7],这和一维数组的用法相等.只是此处s1[7]="abc"写法是错误的只能用strcmp来进行复制.

      #baihe_591 发表于2008-10-10 13:53:34  IP: 218.20.155.*
      1.应该区分这样两种情况:
      1).char a='c';char *p=&a;
      2).char *p="baihe_591";
      2.char *s1="abc";此处定义s1为一个字符指针,也 就是s1本身就是指针,那么要用一个指针来指向s1,就要用到指针的指针,即char **;
      3.因为此处s1和s2的实参是字符数组s1[7]和s2[7],这和一维数组的用法相等.只是此处s1[7]="abc"写法是错误的只能用strcmp来进行复制.

      #baihe_591 发表于2008-10-10 13:53:42  IP: 218.20.155.*
      1.应该区分这样两种情况:
      1).char a='c';char *p=&a;
      2).char *p="baihe_591";
      2.char *s1="abc";此处定义s1为一个字符指针,也 就是s1本身就是指针,那么要用一个指针来指向s1,就要用到指针的指针,即char **;
      3.因为此处s1和s2的实参是字符数组s1[7]和s2[7],这和一维数组的用法相等.只是此处s1[7]="abc"写法是错误的只能用strcmp来进行复制.

      #crazy115043370 发表于2008-10-10 14:24:18  IP: 123.96.82.*
      哦。。谢谢楼主啊。。。以前这个指针就不是很清楚么。。现在知道了,有点误区么我,呵呵!
      #ztz0223 发表于2008-10-11 12:34:51  IP: 222.240.219.*
      这个就可以做砖家?
      #wormss 发表于2008-10-12 02:34:32  IP: 121.33.121.*
      楼主,sort是排序的意思...
      #zwjiong 发表于2008-10-12 13:09:59  IP: 60.177.239.*
      挺好的,对我这个菜鸟帮助很大
      #zwjiong 发表于2008-10-12 13:10:02  IP: 60.177.239.*
      挺好的,对我这个菜鸟帮助很大
      #zwjiong 发表于2008-10-12 13:10:56  IP: 60.177.239.*
      挺好的,对我这个菜鸟帮助很大
      #Scofield_zao 发表于2008-10-12 18:32:03  IP: 59.174.20.*
      很好啊,对我很有用的!
      #baihe_591 发表于2008-10-13 08:19:42  IP: 58.63.18.*
      wormss:
      我本来计划是做字符串排序的,但在过程中发现有好多问题,只好从最简单的单元"交换"做起.函数名就没有改,既然交换做好了,那排序就没有问题了.
      #zhangxuyu1118 发表于2008-10-13 09:03:47  IP: 122.224.121.*
      不错,收藏
      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © baihe_591