侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 748 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

C库函数-strcat和strncat

zze
zze
2024-03-25 / 0 评论 / 0 点赞 / 17 阅读 / 5184 字

strcat

函数原型:

#include <string.h>

char *strcat(char *dest, const char *src);

功能strcat 函数用于将源字符串 src 追加到目标字符串 dest 的末尾,追加完成后,目标字符串将以 \0 作为结束标志。

参数:

  • dest:指向目标字符串的指针,目标字符串必须已经足够大,以便容纳追加后的完整字符串(包括终止符 \0)。

  • src:指向要追加的源字符串的指针。

返回值:

  • 返回值为 dest,即目标字符串的首地址。

示例:

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

int main() {
    char dest[100] = "Hello, ";
    char src[] = "World!";

    // 使用strcat将src追加到dest末尾
    strcat(dest, src);

    printf("Destination string: %s\n", dest);  // 输出:Hello, World!

    return 0;
}

注意事项:

  • 在调用 strcat 时,务必确保目标字符串有足够的剩余空间容纳源字符串及其终止符。否则,可能导致缓冲区溢出,这是一种严重的安全风险。

strncat

函数原型:

#include <string.h>

char *strncat(char *dest, const char *src, size_t n);

功能:strncat 函数类似于 strcat,但它最多只追加 n 个字符(不包括终止符 \0)到目标字符串 dest 的末尾。无论源字符串是否在 n 个字符内结束,都会确保目标字符串以 \0 结束。

参数:

  • dest:指向目标字符串的指针。

  • src:指向要追加的源字符串的指针。

  • n:最多要追加的字符数。

返回值:

  • 返回值为 dest,即目标字符串的首地址。

示例:

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

int main() {
    char dest[100] = "Hello, ";
    char src[] = "World! How are you?";

    // 使用strncat将src的前10个字符追加到dest末尾
    strncat(dest, src, 10);

    printf("Destination string: %s\n", dest);  // 输出:Hello, World! How

    return 0;
}

注意事项:

  • 尽管 strncat 会确保目标字符串以 \0 结束,但在目标字符串空间不足以容纳 n 个字符和终止符时,仍可能出现溢出。因此,在调用 strncat 之前,最好确保目标字符串有足够余量。此外,n 的值不应超过目标字符串剩余空间的大小,以防溢出。

0

评论区