程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 《C和指針》章節後編程練習解答參考——6.3,《c和指針》6.3

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

編輯:關於C語言

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


《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、首位字符輪流交換

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved