strcpy实现代码

1. strcpy实现代码

 

这是出现频率最高的面试题,在编写过程中一定要注意细节

char * strcpy(char * strDest,const char * strSrc)
{
if ((strDest==NULL)||(strSrc==NULL))
throw "Invalid argument(s)";

char * strDestCopy=strDest;
while ((*strDest++=*strSrc++)!='\0');
return strDestCopy;
}
  • 输入参数的判定
  • 异常的抛出
  • 循环的写法

调用方式,注意捕获异常的写法

int main()
{
char strDes[20];
char * strSrc ;
strSrc = "adfgba234";
try
{
strcpy(strDes, strSrc);
cout<<strDes<<endl;
}
catch (const char * str)
{
cout<<str<<endl;
}
}

思考

  • 当拷贝函数参数 strDes 和 strSrc 内容重叠时应该怎么办呢? --  if((strDes + count<strSrc ) || (strSrc + count) <strDes ))
  • 当strDes容量太小时怎么办呢?
posted @ 2012-04-12 15:31  zhice163  阅读(1112)  评论(0编辑  收藏  举报