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

C庫函數 strcat 手寫實現:指針版與斷言檢查

     編輯:關於C語言

標準語義

char *strcat(char *dest, const char *src):將 src 追加到 dest 末尾,返回 dest。要求 dest 有足夠空間。

手寫實現

[cpp]
#include 
#include 
using namespace std;

char *strcat_bxy(char *dst, const char *src) {
    assert(dst != NULL && src != NULL);
    char *tmp = dst;
    while (*dst) dst++;           // 定位到 dest 末尾 '\0'
    while (*dst++ = *src++);      // 複製 src 含 '\0'
    return tmp;
}

int main() {
    char a[100] = "bxy";
    char *b = "123";
    strcat_bxy(a, b);
    cout << a << endl; // bxy123
    return 0;
}

關鍵點

  • assert 防御空指針。
  • 保存原始 dst 以便返回。
  • while (*dst++ = *src++) 經典單行複製循環(含終止符)。
  • 調用者必須保證 dst 空間足夠,否則緩衝區溢出。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved