---
title: strcpy
description: "将源字符串复制到目标字符串，包括结尾的空字符（\0）。拷贝过程中不会检查目标缓冲区的大小，因此如果目标缓冲区不足以容纳源字符串，将会导致缓冲区溢出。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/252RC1/accel/kunpengaccel_ksl_16_0204.html
sourcePath: /source/zh/kunpengboostkithistory/252RC1/accel/kunpengaccel_ksl_16_0204.html
indexId: f788d53958c94a2adf6e07a3c1255551c915d9fb7f25121c1d938af8546b7e8176
---
# strcpy

#### 函数功能

将源字符串复制到目标字符串，包括结尾的空字符（\0）。拷贝过程中不会检查目标缓冲区的大小，因此如果目标缓冲区不足以容纳源字符串，将会导致缓冲区溢出。


#### 函数定义

```
char *strcpy(char *dest, const char *src);
```


#### 参数说明

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| dest | 目标内存地址指针，接收源字符串的内容。 | 非空指针，指向的内存空间必须可写且足够大（能容纳src所有字符+ \0） | 输入/输出 |
| src | 指向要复制的数据源内存指针。 | 非空指针，指向源字符串地址，必须以\0结尾（否则行为未定义，可能导致崩溃或溢出） | 输入 |


#### 返回值

- 成功：返回目标字符串的起始地址。
- 失败：对标开源Glibc，不返回特殊异常值。

必须确保目标字符串有足够的空间来容纳源字符串（包括结尾的\0），否则会引起内存溢出。


#### 示例

```
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "Hello, World!";
char dest[50];
strcpy(dest, src);
printf("Source: %s\n", src);
printf("Destination: %s\n", dest);
return 0;
}
```

运行结果：

```
Source: Hello, World!
Destination: Hello, World!
```
