
不用库函数,自己写出strcpy函数(为什么要返回个char *?) 求高手指点一下,谢谢!
3个回答
展开全部
char*strcpy(char* strDest,const char * strSrc)
{
if ((strDest==NULL)||strSrc==NULL))
return NULL;
char * strDestCopy=strDest;
while ((*strDest++=*strSrc++)!='\0');
return strDestCopy;
} 你看清楚原函数了?
第一:你可以直接使用strDestCopy的值,
第二:strDestCopy亦代表着首地址,这样是为了后面跟好的使用。。。
如果你后面不使用这个字符串或者说这段内存,你完全可以将它重新实现它并定义为void。
这样说可以吗?
{
if ((strDest==NULL)||strSrc==NULL))
return NULL;
char * strDestCopy=strDest;
while ((*strDest++=*strSrc++)!='\0');
return strDestCopy;
} 你看清楚原函数了?
第一:你可以直接使用strDestCopy的值,
第二:strDestCopy亦代表着首地址,这样是为了后面跟好的使用。。。
如果你后面不使用这个字符串或者说这段内存,你完全可以将它重新实现它并定义为void。
这样说可以吗?
展开全部
最直接的原因 可以做级联的表达式如
strcmp(char* p,strcpy(cha*p1,char*p2));
过不不返回strcpy没有返回值的话你是不是实现上述代码必须多写几行代码。
strcmp(char* p,strcpy(cha*p1,char*p2));
过不不返回strcpy没有返回值的话你是不是实现上述代码必须多写几行代码。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dest,const char * strSrc)
{
if ((strDest==NULL)||strSrc==NULL))
return NULL;
char * strDestCopy=strDest;
while ((*strDest++=*strSrc++)!='\0');
return strDestCopy;
}
{
if ((strDest==NULL)||strSrc==NULL))
return NULL;
char * strDestCopy=strDest;
while ((*strDest++=*strSrc++)!='\0');
return strDestCopy;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询