读书人

很简单的题目

发布时间: 2012-02-17 17:50:42 作者: rapoo

很简单的题目,高手进!

C/C++ code
#include <iostream.h>char *strcpy(char *strDest, const char *strSrc){    if ( strDest == NULL || strSrc == NULL)//[color=#FF0000]这个语句有什么用?举个列子,详细点。[/color]        return NULL ;    if ( strDest == strSrc)//[color=#FF0000]这个语句有什么用?举个列子,详细点。[/color]        return strDest ;    char *tempptr = strDest ;    while( (*strDest++=*strSrc++) !='\0');    return tempptr ;}void main(){    char st1[100];    char st2[100];    cin>>st1>>st2;    cout<<strcpy(st1,st2)<<endl;    }


[解决办法]
if ( strDest == NULL || strSrc == NULL)//这个语句有什么用?举个列子,详细点。
return NULL ;
这句就是加入你调用函数时 两个实参全为空,就会返回NULL,就比如如下调用
char str1=‘’;
char str2=‘’;
strcpy(st1,st2);
就会返回NULL;
if ( strDest == strSrc)//这个语句有什么用?举个列子strDest return strDest ;
这句就是两个实参相同时,就不需要拷贝,所以在之后返回strDest;
[解决办法]
参照 《高质量C/C++编程指南》-林锐

网上有自己找,里面有关于这个函数编写的详细分析。。。
[解决办法]
你贴的代码不全吧。return NUL都没了。

读书人网 >C++

热点推荐