<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      實現(xiàn)字符串反轉的函數(shù)[轉]

      提供兩種方法:

          1、有中間變量

          2、無中間變量


          /***************************************************
            Name:          reverse_str.c
            Copyright:    kernelxu
            Author:        kernelxu
            Date:           29-08-05 12:10
            Description:  reverse astring allocated in an array
                               將一個存儲在數(shù)組中的字符串倒置。
            My E_mail:    kernelxu@hotmail.com
          ***************************************************/
          #include <stdio.h>
          #include <string.h>

          void reverse_str(char * ch);
          void reverse_str2(char *ch);

          int main(void)
          {
             char c[] = "Can you reverse me?";

             printf("original string c: \n%s\n", c);
             reverse_str(c);
             printf("reversed string after calling reverse_str: \n%s\n", c);
             reverse_str2(c);
             printf("reversed string after calling reverse_str2: \n%s\n", c);
             system("pause");

             return 0;
          }

          void reverse_str(char *ch)  /*使用中間變量*/
          {
             int len;
             int i;
             len = strlen(ch)-1;
             char ctemp;

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

          }

      -------------------------------------------------------

          void reverse_str2(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;
          }

      ---------------------------------------------------------

      //堆棧實現(xiàn)

      一般的方法是先掃描一邊第一個字符串,然后用stack把它反轉,同時記錄下子串出現(xiàn)的位置。然后再掃描一遍把記錄下來的子串再用stack反轉。我用的方法是用一遍掃描數(shù)組的方法。掃描中如果發(fā)現(xiàn)子串,就將子串倒過來壓入堆棧。
      最后再將堆棧里的字符彈出,這樣子串又恢復了原來的順序。

      編寫函數(shù)reverse_string,它的原型如下:
                  void reverse_string(char *str);
               函數(shù)把參數(shù)字符串中的字符串反向排列。請使用指針而不是數(shù)組下標,不要使用任何C函數(shù)庫中用于操縱字符串的函數(shù)。提示:不要聲明一個局部數(shù)組來臨時存儲參數(shù)字符串。
               
      算法:
             關于反轉字符串的方法很多。這里我給出我想到的一種算法。
      /************反轉字符串************/
      void reverse_str(char *str)
      {
          
      char *cp = str;
          
      int i=0;
          
      while(*str!= '\0')
          
      {
              str
      ++;
              i
      ++;
          }


          i 
      /= 2;
          str
      --;
          
      while(i-- > 0)
          
      {
              
      *str ^= *cp;
              
      *cp ^= *str;
              
      *str ^= *cp;

              str
      --;
              cp
      ++;
          }

      }

      說明:
               算法中運用了:a ^ a = 0  和 a ^ 0 = a 的特性。以此來進行變量值的交換,可以避免使用額外的臨時變量。
      posted @ 2011-02-16 20:49  abstractwind  閱讀(2252)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲午夜理论无码电影| 巨爆乳中文字幕爆乳区| 制服丝袜人妻有码无码中文字幕| 亚洲欧洲日产国无高清码图片| 国产不卡一区二区四区| 98精品全国免费观看视频| 国产欧美日韩亚洲一区二区三区| 婷婷色综合成人成人网小说| 在线 国产 欧美 专区| 无锡市| 精品久久久久久国产| 日本精品不卡一二三区| 日韩人妻无码中文字幕视频| 中年国产丰满熟女乱子正在播放| 日韩精品福利视频在线观看| 女同AV在线播放| 亚洲国产良家在线观看| 欧美激情一区二区久久久| 无码小电影在线观看网站免费| 中文字幕亚洲精品人妻| 韩国午夜福利片在线观看| 国产精品一区二区久久不卡| 亚洲综合精品第一页| 国产激情一区二区三区在线| 国产网友愉拍精品视频手机| 中文字幕va一区二区三区| 国产精品制服丝袜第一页| 又湿又紧又大又爽A视频男| 综合色一色综合久久网| 国内揄拍国内精品少妇国语| 福利视频在线一区二区| 五月丁香啪啪| 久久热这里只有精品最新| 国产免费午夜福利在线播放| 欧美成人精品手机在线| 国产精品线在线精品| 亚洲精品国产一区二区三区在线观看| 亚洲精品一区二区口爆| 国产精品最新免费视频| 青青青青国产免费线在线观看 | 国产精品亚洲综合久久小说|