有任何不懂的问题可以评论区留言,能力范围内都会一一回答
1.strcpy
头文件#include<string.h>
char * strcpy ( char * destination, const char * source );
这个函数的功能是复制字符串
将source指向的 C 字符串复制到指向destination的数组中,包括终止 \0 字符(并在该点处停止)。
为避免溢出,destination指向的数组的大小应足够长,以包含与source相同的 C 字符串(包括终止 \0 字符),并且不应在内存中与source重叠。
destination:指向要复制内容的目标数组的指针。
source:指向要复制的 C 字符串的指针。
返回值:返回 destination。
注意事项:
1.源字符串必须以'\0'结束。
2.会将源字符串中的'\0'拷贝到目标空间。
3.目标空间必须足够大,以确保能存放源字符串。
4.目标空间必须可修改。
5.strcpy会覆盖掉destination所指向的数组,但不会改变source所指向的数组
2.strcat
头文件#include<string.h>
char * strcat ( char * destination, const char * source );
这个函数的功能是连接字符串
将source指向的字符串的副本追加到destination指向的字符串。destination指向的字符串 中的终止 null (\0)字符被 source 指向的字符串的第一个字符覆盖,并且 null(\0) 字符包含在由 destination 指向的字符串 中两者的串联形成的新字符串的末尾。
destination:指向目标数组的指针,该数组应包含 C 字符串,并且应足够大以包含连接的结果字符串。
source:指向要追加的 C 字符串的指针。
返回值:返回 destination。
1. 源字符串必须以'\0'结束。
2.目标字符串中也得有'\0',否则没办法知道追加从哪里开始。
3.目标空间必须有足够的大,能容纳下源字符串的内容。
4.目标空间必须可修改。
那么思考一下,strcat能否自己给自己追加呢?
是的,strcat函数的source和destination变量可以指向同一个字符串 。不过,这种做法通常不被推荐,因为它会导致字符串的自我连接,可能会产生意外的结果或导致程序错误。
strcat函数的设计目的是将源字符串(source)连接到目标字符串(destination)的末尾。如果source和destination指向同一个字符串,那么该字符串将会被自身连接,这可能导致字符串长度的无限增长,或者在循环过程中由于内存覆盖而导致程序崩溃。
总之,虽然技术上可以将source和destination设置为同一个字符串,但这不是strcat函数的预期使用方式,且可能带来程序逻辑上的问题。因此,建议始终使用不同的字符串作为source和destination。
3.strncpy
头文件#include<string.h>
char * strncpy ( char * destination, const char * source, size_t num );
这个函数的功能是从字符串中复制字符
将source指向的字符串的前 num 个字符复制到destination指向的字符串。如果在复制 num 个字符之前找到source指向的C 字符串的末尾(由 null (\0)字符表示),则 destination 指向的字符串将用\0填充,直到总共写入 num 个字符。
如果 source 的长度大于 num,则不会在目标末尾隐式追加 null 字符。因此,在这种情况下,destination 不应被视为以 null(\0) 结尾的 C 字符串(这样读取它会溢出)。
source:要复制的 C 字符串。
destination:指向要复制内容的目标数组的指针。
num:
要追加的最大字符数。
size_t 是无符号整数类型。
返回值:返回 destination。
简要概括:拷贝num个字符从源字符串到目标空间。
· 如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加\0,直到num个。
4.strncat
头文件#include<string.h>
char * strncat ( char * destination, const char * source, size_t num );
这个函数的功能是从字符串追加字符
将source指向的字符串的前 num 个字符追加到destination指向的字符串,外加一个终止 null 字符。
如果源中 C 字符串的长度小于 num,则仅复制直到终止 null 字符的内容。
source:指向目标数组的指针,该数组应包含一个 C 字符串,并且应足够大以包含连接的结果字符串,包括额外的 null 字符。
destination:要追加的 C 字符串。
num:
要追加的最大字符数。
size_t 是无符号整数类型。
返回值:返回 destination。