C 語言 strcpy 與 memcpy 區別深度解析
strcpy 專用於字符串複製,memcpy 通用內存塊複製。本文從原型、實現、適用場景、安全性四個維度深度對比。 函數原型 char* strcpy(ch
最大子數組和問題:Kadane 算法求連續子數組最大和及區間
給定含正負整數數組,求連續子數組最大和,並輸出起止下標(多解取最早)。本文講解 O(n) 時間 O(1) 空間的 Kadane 算法,並給出完整 C++ 實現。
C 語言面試經典:不使用任何變量實現 strlen
面試題:「不允許使用任何全局/局部變量,實現 int strlen(char* str)」。解法關鍵:遞歸利用調用棧隱式存儲計數器。 遞歸實現 #inclu
C++ map 實現單詞轉換:文本處理實戰案例
利用 std::map 建立單詞映射表,實現文本按規則替換。本文展示完整流程:讀取規則文件構建 map、逐行讀取輸入文件、按單詞查找替換、保持格式輸出。 核心
字符串模式匹配算法詳解:朴素算法與 KMP 算法原理與實現
模式匹配是文本處理核心操作。本文對比朴素回溯法(O(mn))與 KMP 算法(O(m+n)),詳細推導 next 數組構建與匹配流程,提供優化版 nextval
高效統計整數二進制中 1 的個數:Brian Kernighan 算法詳解
統計整數二進制中 1 的個數(Hamming Weight)是經典位運算面試題。本文深度解析 n & (n-1) 消除最低位 1 的巧妙技巧。 核心代碼 v
C++ 實現句子單詞倒序:原地雙重反轉法詳解
將句子中單詞順序倒置(單詞內部不變),如 I come from Tianjin. → Tianjin. from come I。本文講解「整體反轉 + 單詞反
C/C++ 雙指針(二級指針)兩大核心用法深度解析
二級指針(指針的指針)是 C/C++ 修改調用者指針值、動態分配二維數組的關鍵工具。本文通過經典面試題剖析其核心機制與兩大典型應用場景。 經典面試題:函數內為
C++ 內存分配、函數調用與返回值深度分析
理解 C++ 內存模型是寫出正確、高效代碼的前提。本文系統梳理代碼區、靜態區、堆、棧四大區域,並通過 6 個典型案例深入剖析函數調用棧幀、返回值拷貝、生命週期陷
C 語言 volatile 關鍵字深度解析:含義、用法與經典面試陷阱
volatile 告訴編譯器:「該變量可能被未知因素(硬件、中斷、線程)修改,請勿優化,每次必須從內存讀取。」本文系統講解其語義、適用場景、組合用法與經典面試題
C++ 實現 strcmp 字符串比較函數深度探討
標準庫 strcmp 是字符串比較的基石。本文解析其語義、返回值陷阱,並給出一個返回標準化 -1/0/1 的手寫版本。 標準庫 strcmp 規範 int s
C++ 求 1000 以內素數:試除法優化與代碼實現
素數判定是基礎算法題。本文展示利用「只需試除到 √n」優化的試除法,輸出 1000 以內所有素數。 核心判定邏輯 若 n 為合數,至少有一個質因數 ≤ √n。
C 語言實現基於流的配置文件讀取與添加函數
配置文件解析是系統編程常見需求。本文實現一組基於 FILE* 流的輕量級配置操作函數,支持 key = value 格式、註釋行、鍵值前後空白,採用流參數提高復
深入理解卡特蘭數:定義、遞推公式與經典應用場景
卡特蘭數是組合數學中極具代表性的數列,廣泛出現在棧排序、括號匹配、多邊形三角剖分等計數問題中。本文系統梳理其定義、多種計算公式及經典應用模型。 定義與基本遞推
C++ 實現 strcat 字符串連接函數詳解與手寫版本
標準庫函數 strcat 用於將源字符串追加到目標字符串末尾。本文詳細說明其原型、使用注意事項,並提供一個安全的手寫實現版本。 標準庫 strcat 介紹 e