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

C語言字符串連接實現:指標遍歷拷貝法

     編輯:關於C

手寫 strcat 核心邏輯


#include 

void link(char *s, char *t) {
    while (*s != '\0') s++;      // 移至 s 末尾
    while (*t != '\0') *s++ = *t++;  // 逐字符拷貝 t 到 s 尾部
    *s = '\0';                   // 添加結束符
}

int main() {
    char p[128] = "123";  // 足夠大的緩衝區
    char *q = "456";      // 字符串常量(只讀)
    link(p, q);
    printf("連接後: %s\n", p);  // 輸出 123456
    return 0;
}

關鍵點

  • 目標緩衝區必須足夠大(此處 p[128]),否則緩衝區溢出。
  • q 為字符串常量指標,不可修改;p 為數組,可修改。
  • 雙重 while 循環分別完成「找尾」與「拷貝」。
  • 標準庫 strcat / strncat 同理,但含長度檢查更安全。

安全增強版


void link_safe(char *dest, size_t dest_size, const char *src) {
    char *end = dest;
    while (*end && (end - dest) < dest_size - 1) end++;
    while (*src && (end - dest) < dest_size - 1) *end++ = *src++;
    *end = '\0';
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved