网站建设 专项资金变更电脑商城网站模板
一、C 库函数 - strcat() ⭐️
C标准库 -<string.h>
(一)、命名介绍 🍭
strcat()是C标准库中的一个函数,用于将两个字符串拼接(连接)在一起。它的名字来源于string concatenation(字符串拼接)。
(二)、函数声明 🍭
char *strcat(char *dest, const char *src)
把
src所指向的字符串追加到dest所指向的字符串的结尾。
参数:🎀
dest– 指向目标数组,该数组包含了一个C字符串,且足够容纳追加后的字符串。src– 指向要追加的字符串,该字符串不会覆盖目标字符串。
返回值:🎀
- 该函数返回一个指向最终的目标字符串
dest的指针。
举例: 🎀
#include <stdio.h>
#include <string.h>int main ()
{char src[50], dest[50];strcpy(src, "This is source");strcpy(dest, "This is destination");strcat(dest, src);printf("最终的目标字符串: |%s|", dest);return(0);
}


二、C 库函数 - strncpy() ⭐️
C标准库 -<string.h>
(一)、命名介绍 🍭
strncpy是C标准库中的一个字符串处理函数,其命名来源于StringCopywithLengthLimit,即“带长度限制的字符串复制”。它的设计目的是为了安全地复制字符串,避免缓冲区溢出问题。
命名解析:📚
str:表示字符串(String),这是C标准库中字符串相关函数的通用前缀(如strcpy、strcat、strlen等)。n:表示长度限制(LengthLimit),即函数会限制复制的字符数量,防止超出目标缓冲区的容量。cpy:表示复制(Copy),即函数的主要功能是复制字符串。
因此,strncpy 可以理解为“带长度限制的字符串复制函数”。
(二)、函数声明 🍭
char *strncpy(char *dest, const char *src, size_t n)
把
src所指向的字符串复制到dest,最多复制n个字符。当src的长度小于n时,dest的剩余部分将用空字节填充。
参数:🎀
dest– 指向用于存储复制内容的目标数组。src– 要复制的字符串。n– 要从源中复制的字符数。
返回值:🎀
- 该函数返回最终复制的字符串。
举例: 🎀
下面的实例演示了
strncpy()函数的用法。在这里,我们使用函数memset()【请查看我的另一篇文章】来清除内存位置。
#include <stdio.h> // 引入标准输入输出库,用于使用 printf 等函数
#include <string.h> // 引入字符串处理库,用于使用 memset、strcpy、strncpy 等函数int main()
{char src[40]; // 定义一个长度为40的字符数组 src,用于存储源字符串char dest[12]; // 定义一个长度为12的字符数组 dest,用于存储目标字符串memset(dest, '\0', sizeof(dest)); // 使用 memset 将 dest 数组的所有元素初始化为 '\0'(即空字符)// 作用:确保 dest 数组在使用前是干净的,避免潜在的垃圾值strcpy(src, "This is test"); // 使用 strcpy 将字符串 "This is test" 复制到 src 数组中// 注意:src 数组的长度足够大,可以容纳该字符串及其结束符 '\0'strncpy(dest, src, 10); // 使用 strncpy 从 src 数组中复制前10个字符到 dest 数组中// 注意:strncpy 不会自动在目标字符串末尾添加 '\0',除非复制的字符数小于目标数组的长度printf("最终的目标字符串: %s\n", dest); // 打印 dest 数组中的内容// 由于 strncpy 复制了10个字符,且 dest 数组长度为12,dest 的内容为 "This is te",末尾没有 '\0'// 但由于之前使用 memset 初始化了 dest,dest 的第11个字符是 '\0',因此可以正确打印return 0; // 程序正常结束,返回0
}


