strcpy 是 C 语言标准库中的一个函数,用于拷贝字符串。它的原型定义在 <string.h> 头文件中。
cpp
#include <stdio.h>
char* strcpy(char* destination, const char* source) {
if (destination == NULL) {
return NULL;
}
// 创建一个指针来遍历源字符串
char* ptr = destination;
// 拷贝源字符串中的字符到目标地址,直到遇到字符串结束符 '\0'
while (*source != '\0') {
*ptr++ = *source++;
}
// 在目标字符串的末尾添加字符串结束符 '\0'
*ptr = '\0';
// 返回目标字符串的起始地址
return destination;
}
int main() {
char src[] = "Hello World";
char dest[20];
// 调用自定义的 strcpy 函数
strcpy(dest, src);
printf("Copied string: %s\n", dest);
return 0;
}
这段代码中的 strcpy 函数接受两个参数:destination 是目标字符串的指针 ,source 是源字符串的指针。函数会逐个字符地将 source 指向的字符串拷贝到 destination 指向的内存空间,直到遇到源字符串的结束符 \0。然后在目标字符串的末尾也添加一个 \0 字符来标记字符串的结束。
请注意,上述代码没有处理潜在的缓冲区溢出问题。实际使用时,应确保 destination 指向的缓冲区足够大,可以容纳 source 指向的字符串。为了更安全地拷贝字符串,建议使用 strncpy 函数,它允许指定最大拷贝长度以避免溢出。
此外,在使用这些函数时,务必要确保源字符串和目标字符串不重叠,并且源字符串是以 \0 结尾的合法 C 字符串。