跳到主要内容

C++ strcpy() 函数

C++ 中的 strcpy() 函数用于将一个字符字符串从源位置复制到目标位置。它定义在 cstring 头文件中。

示例

#include <cstring>
#include <iostream>

using namespace std;

int main() {
char src[] = "Hello Programmers.";

// 足够大以存储 src 的内容
char dest[20];

// 将 src 的内容复制到 dest
strcpy(dest, src);

cout << dest;

return 0;
}

// 输出:Hello Programmers.

strcpy() 语法

strcpy() 的语法是:

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

strcpy() 参数

strcpy() 函数接受以下参数:

  • dest - 指向要复制内容的 C 字符串的指针
  • src - 指向要从中复制内容的 C 字符串的指针

strcpy() 返回值

strcpy() 函数返回:

  • dest(指向目标 C 字符串的指针)

strcpy() 原型

cstring 头文件中定义的 strcpy() 的原型是:

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

strcpy() 函数将由 src 指向的 C 字符串复制到由 dest 指向的内存位置。空终止字符 '\0' 也被复制。

请注意:

  • srcconst char* 类型。const 关键字确保了 src 指向的 C 字符串不能被 strcpy() 修改。
  • destchar* 类型。没有 const 保证 dest 指向的 C 字符串可以被 strcpy() 修改。

strcpy() 未定义行为

如果出现以下情况,strcpy() 的行为是未定义的:

  • dest 指针分配的内存不够大。
  • 字符串重叠。

示例:C++ strcpy()

#include <cstring>
#include <iostream>

using namespace std;

int main() {
char src[20] = "I am the source.";

// 足够大以存储 src 的内容
char dest[30] = "I am the destination.";

cout << "dest[] 复制前: " << dest << endl;

// 将 src 的内容复制到 dest
strcpy(dest, src);

cout << "dest[] 复制后: " << dest;

return 0;
}

输出

dest[] 复制前: I am the destination.
dest[] 复制后: I am the source.