C语言strcpy()函数:复制字符串(附带实例)

xwbar的头像
2025-10-30 10:42:56
/
新手专区

在字符串操作中,字符串复制是比较常用的操作之一,C语言中可以借助 strcpy() 函数完成。

strcpy() 函数的作用是复制特定长度的字符串到另一个字符串中,其语法格式如下:

strcpy(目的字符数组名, 源字符数组名);

strcpy() 函数的功能是把源字符数组中的字符串复制到目的字符数组中,字符串结束标志“\0”也一同复制。

使用 strcpy() 函数时,需要注意以下几点:

目的字符数组应该有足够的长度,否则不能全部装入所复制的字符串。

目的字符数组必须是一个数组;而源字符数组名既可以是一个字符数组,也可以是一个字符串常量。这相当于把一个字符串赋予一个字符数组。

不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组,需要借助 strcpy() 函数实现。

【实例 1】使用 strcpy() 函数更新招牌内容,将原来的“包子一元一个”,修改为“包子壹圆壹个”。

#define _CRT_SECURE_NO_WARNINGS /*解除vs安全性检测问题*/

#include //包含输入输出函数库

#include //包含字符串复制函数库

int main() //主函数main()

{

//定义字符数组用来存储招牌的新旧内容

char old[30] = "包子一元一个", new[30] = "包子壹圆壹个";

printf("原来的招牌的内容是:\n"); //输出旧招牌内容提示信息

printf("%s\n", old); //输出旧招牌内容

strcpy(old, new); //利用strcpy()函数将新招牌盖掉旧招牌

printf("经过处理之后的招牌的内容是:\n"); //输出新招牌内容提示信息

printf("%s\n", old); //输出新招牌内容

return 0; //程序结束

}

运行程序,结果为:

原来的招牌的内容是:

包子一元一个

经过处理之后的招牌的内容是:

包子壹圆壹个

从作用上看,上述代码的本质就是字符串替换,用源字符数组替换目的字符数组。例如:

char old[30] = "I love you", new[30] = "我爱你";

printf("原来内容是:\n");

printf("%s\n", old);

strcpy(old, new);

printf("经过处理之后内容是:\n");

printf("%s\n", old);

运行结果如下:

原来内容是:

I love you

经过处理之后内容是:

我爱你

从结果来看,使用 strcpy() 就是用“我爱你”替换“I love you”,最终输出字符串“我爱你”。

注意,开发环境 Visual Studio 认为 strcpy() 函数不安全,建议用 strcpy_s() 函数。strcpy_s() 函数的语法格式如下:

strcpy_s(目的字符数组名,缓冲区大小,源字符数组名);

用法基本上和 strcpy() 函数相同,使用 strcpy_s() 函数还需要指定缓冲区大小(以字节为单位),其实就是目标字符数组的大小。

13个人,1年营收1200万,他们如何卖咖啡?
前端开发中web和移动端动画的常见实现方式