首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言字串反轉實作教學

     編輯:關於C

字串反轉函數實作

在C語言中,字串反轉是一個經典的基礎演算法練習。透過雙指標或索引交換的方式,可以將字元陣列的順序顛倒。以下是一個標準的實作範例:

void reverse(char a[], int len) {
    char k;
    for (int i = 0; i < len / 2; i++) {
        k = a[i];
        a[i] = a[len - i - 1];
        a[len - i - 1] = k;
    }
}

程式碼解析

  • 參數說明:a[] 為字元陣列,len 為字串長度
  • 核心邏輯:只需遍歷前半段(len/2),將第 i 個字元與第 len-i-1 個字元交換
  • 暫存變數:使用 k 暫存其中一個字元,完成三步驟交換

使用範例

#include <stdio.h>
#include <string.h>

void reverse(char a[], int len);

int main() {
    char str[] = "Hello World";
    int len = strlen(str);
    
    printf("反轉前: %s\n", str);
    reverse(str, len);
    printf("反轉後: %s\n", str);
    
    return 0;
}

注意事項

  1. 此函數直接修改原陣列,不會配置新記憶體
  2. 傳入長度應為字串實際長度(不含結束符 \0)
  3. 若字串包含多位元組字元(如中文),需改用寬字元版本

這個演算法時間複雜度為 O(n),空間複雜度為 O(1),是原地反轉的經典解法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved