strcpy函数如何使用

 我来答
星月谈教育
高能答主

2019-07-26 · 带你走进教育,看不一样的教育。
星月谈教育
采纳数:667 获赞数:272806

向TA提问 私信TA
展开全部

1、strcpy 函数使用方法:

strcpy()函数是C语言中的一个复制字符串的库函数。

2、空指针检查:源指针和目的指针都有可能会出现空指针的情况,所以应该对其进行检查。

3、const 修饰:源字符串参数用const修饰,防止修改源字符串;

4、为什么要设置ret 指针以及返回ret指针的位置[3],由于目的指针dst已经在进行移动了,所以用辅助指针ret表明首指针;

扩展资料:

strcpy 函数的错误用法及反馈:

1、不检查指针的有效性,说明答题者不注重代码的健壮性。

2、(A)return new string("Invalid argument(s)");,说明答题者根本不知道返回值的用途,并且他对内存泄漏也没有警惕心。从函数中返回函数体内分配的内存是十分危险的做法,他把释放内存的义务抛给不知情的调用者,绝大多数情况下,调用者不会释放内存,这导致内存泄漏。

3、(B)return 0;,说明答题者没有掌握异常机制。调用者有可能忘记检查返回值,调用者还可能无法检查返回值(见后面的链式表达式)。妄想让返回值肩负返回正确值和异常值的双重功能,其结果往往是两种功能都失效。应该以抛出异常来代替返回值,这样可以减轻调用者的负担、使错误不会被忽略、增强程序的可维护性。

4、(A)忘记保存原始的strDest值,说明答题者逻辑思维不严密。

参考资料来源:百度百科 - strcpy

光瑞渊0eb
高粉答主

2019-05-17 · 说的都是干货,快来关注
知道小有建树答主
回答量:158
采纳率:100%
帮助的人:2.6万
展开全部

strcpy函数的使用:

strcpy()函数是C语言中的一个复制字符串的库函数。

char * strcpy(char *dst,const char *src)   
{
if((dst==NULL)||(src==NULL))

return NULL;

char *ret = dst; //[1]

while ((*dst++=*src++)!='\0'); //[2]

return ret;//[3]
}

一、const 修饰:源字符串参数用const修饰,防止修改源字符串;

二、空指针检查:源指针和目的指针都有可能会出现空指针的情况,所以应该对其进行检查

三、为什么要设置ret 指针以及返回ret指针的位置[3],由于目的指针dst已经在进行移动了,所以用辅助指针ret表明首指针;

四、以上所示[2]处,为简单的字符串的复制过程,正好表明strcpy函数遇到'\0'将会停止;

扩展资料:

strcpy应用条例:

一、原型声明:char *strcpy(char* dest, const char *src);

二、头文件:#include <string.h> 和 #include <stdio.h>

三、功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间

四、说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

参考资料来源:百度百科—strcpy

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
那年丶人已散尽
高粉答主

2020-02-15 · 关注我不会让你失望
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:5.1万
展开全部

strcpy()是C中的一个复制字符串的库函数,在C++中现在编译器要求使用strcpy_s(),提高安全性,效果是一样的,只是防止源串的长度比目的串的长度大,导致最终的内存越界。

函数声明及实现代码:

char* strcpy(char*dst, const char*src)

char* strcpy(char*dst, const char *src)

{    if ((dst == NULL) || (src == NULL))        return NULL;    char *ret = dst;  //

   while ((*dst ++= *src++) != '\0');

       return ret;   }

const 修饰:源字符串参数用const修饰,防止修改源字符串;

空指针检查:源指针和目的指针都有可能会出现空指针的情况,所以应该对其进行检查。

为什么要设置ret 指针以及返回ret指针的位置,由于目的指针dst已经在进行移动了,所以用辅助指针ret表明首指针。

扩展资料:

在编程时,加入错误检查,就可及时发现错误,并且对出现的异常进行处理。在编写 strcpy
函数时,首先尽量使目的缓冲区长度足够长,另外要检测目的缓冲区和源缓冲区。如果目的缓冲区或源缓冲区是空,就要在异常处理中结束程序。

如果,源字符串比目的缓冲区长度不长,也要在异常处理中结束程序,以防止出现溢出情况。任何程序都很难说是绝对安全,只能以尽可能安全的方式来处理
strcpy 函数。

只要输入的字符串不以空字符结束,函数就会随时终止。这种检测容易实现。但是这样的检测也并不能确定函数一定安全。

参考资料来源:百度百科-strcpy


本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a909002881
推荐于2018-03-04 · TA获得超过2482个赞
知道小有建树答主
回答量:915
采纳率:0%
帮助的人:458万
展开全部
字符串拷贝函数strcpy
格式: strcpy (字符数组名1,字符数组名2)
功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
#include"string.h"
main()
{
char st1[15],st2[]="C Language";
strcpy(st1,st2);
puts(st1);printf("\n");
}
本函数要求字符数组1应有足够的长度,否则不能全部装入所拷
贝的字符串。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不熬yeah
高粉答主

2019-12-21 · 说的都是干货,快来关注
知道小有建树答主
回答量:1793
采纳率:100%
帮助的人:44.2万
展开全部
字符串拷贝函数strcpy。格式: strcpy (字符数组名1,字符数组名2)。功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。#include"string.h"。main()。{。char st1[15],st2[]="c language"。strcpy(st1,st2)。puts(st1)。printf("\n")。}。本函数要求字符数组1应有足够的长度,否则不能全部装入所拷。贝的字符串。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式