《C和指標》章節後編程練習解答參考——6.3

來源:互聯網
上載者:User

標籤:

《C和指標》——6.3

題目:

  編寫一個函數,把參數字串中的字元反向排列。

函數原型:

  void reverse_string(char *string);

要求:

  使用指標而不是數組下標

  不要使用任何C函數庫中用於操縱字串的函數

  不要聲明一個局部數組來臨時儲存參數字串

解答代碼:

#include <stdio.h>void reverse_string(char *string){    int i, n=0;        while (*(string+n) != ‘\0‘)        //計算字串中字元的個數        n++;    n--;                            //字元個數n作為索引號時要減1,即從0到n-1    if (n > 0)                        //字元個數小於等於1時沒有必要反轉    {        for (i=0; i<=(n/2); i++)        {            if (i != (n-i))            {                char p;                //字元內容交換                p = *(string+i);                *(string+i) = *(string+n-i);                *(string+n-i) = p;            }        }    }}int main(){    char source[] = "ABCDEFGH";    printf("Before reverse:\n%s\n", source);    reverse_string(source);    printf("After reverse:\n%s\n", source);    getchar();    return 0;}

註:

  1、先計算字串中非‘\0‘字元的個數

  2、首位字元輪流交換

《C和指標》章節後編程練習解答參考——6.3

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.