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

C語言字串反轉輸出:指標法與陣列法兩種實現

     編輯:關於C語言

方法一:指標法(動態分配記憶體)

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

int main() {
    char *src = "hello world";
    int len = strlen(src);
    char *dest = (char *)malloc(len + 1); // 預留 \0 空間
    char *d = dest;
    char *s = &src[len - 1]; // 指向最後一個字元
    while (len-- != 0)
        *d++ = *s--;
    *d = '\0'; // 添加結束符
    printf("%s\n", dest);
    free(dest); // 釋放記憶體
    dest = NULL; // 避免野指標
    return 0;
}

方法二:陣列法(原地交換)

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

int main() {
    char str[] = "Hello world";
    int len = strlen(str);
    char t;
    for (int i = 0; i < len / 2; i++) {
        t = str[i];
        str[i] = str[len - i - 1];
        str[len - i - 1] = t;
    }
    printf("%s\n", str);
    return 0;
}

Heap 與 Stack 差異補充

  • Heap(堆):手動分配/釋放(malloc/free、new/delete),空間大。
  • Stack(棧):作業系統自動分配/釋放,空間有限。編譯期變數、函數參數傳遞均在棧上。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved