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

C 語言模擬實現 strncat:限制追加長度的字符串連接

     編輯:關於C語言

strncat 特性

最多追加 n 字符,且保證結果以 '\0' 結尾,避免自我連接時找不到結束符。

實現

char *my_strncat(char *dst, const char *src, size_t n) {
    assert(dst && src);
    char *ret = dst;
    while (*dst) dst++;          // 定位結束符
    while (n-- && *src) *dst++ = *src++; // 追加最多 n 字符
    *dst = '\0';
    return ret;
}

測試:自我連接

int main() {
    char buf[20] = "hello ";
    size_t len = strlen(buf); // 6
    my_strncat(buf, buf, len); // 追加自身前 6 字符
    printf("%s\n", buf); // hello hello
    return 0;
}

關鍵點

  • 先找到 dst 結束符,再追加。
  • 循環條件 n-- && *src 確保不越界且遇 '\0' 停止。
  • 最後補 '\0'。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved