strcpy
函数原型:
#include <string.h>
char *strcpy(char *dest, const char *src);
功能:strcpy
函数用于将源字符串 src
的内容复制到目标字符串 dest
。复制操作包括源字符串中的所有字符,直到遇到终止符 '\0'
。
参数:
dest
:指向目标字符串的指针,目标字符串应该足够大以便容纳源字符串及其终止符'\0'
。src
:指向源字符串的指针。
返回值:
返回值为
dest
,即目标字符串的首地址。
示例:
#include <stdio.h>
#include <string.h>
int main() {
char dest[100];
char src[] = "Hello, World!";
// 使用strcpy复制src到dest
strcpy(dest, src);
printf("Destination string: %s\n", dest); // 输出:Hello, World!
return 0;
}
注意事项:
在调用
strcpy
时,务必确保目标字符串有足够的空间来存储源字符串。否则,可能会导致缓冲区溢出,这是一种严重的安全风险。
strncpy
函数原型:
#include <string.h>
char *strncpy(char *dest, const char *src, size_t n);
功能:strncpy
函数同样用于将源字符串 src
的内容复制到目标字符串 dest
,但它最多只会复制 n
个字符(不包括终止符 '\0'
)。如果源字符串长度小于 n
,则目标字符串剩余部分将用空字符 ('\0'
) 填充至 n
个字符。
参数:
dest
:指向目标字符串的指针。src
:指向源字符串的指针。n
:最大要复制的字符数。
返回值:
返回值为
dest
,即目标字符串的首地址。
示例:
#include <stdio.h>
#include <string.h>
int main() {
char dest[100];
char src[] = "Hello, World!";
// 使用strncpy复制src到dest,最多复制15个字符
strncpy(dest, src, 15);
printf("Destination string: %s\n", dest); // 输出:Hello, Worl
return 0;
}
注意事项:
strncpy
不保证目标字符串末尾一定会有终止符'\0'
,特别是当复制的字符数n
等于或大于源字符串长度时。因此,通常在使用strncpy
后需要手动添加终止符,确保字符串正确结束:
strncpy(dest, src, n);
dest[n-1] = '\0'; // 如果n>0的话
评论区