很简单的题目
很简单的题目,高手进!C/C++ code#include iostream.hchar *strcpy(char *strDest, const char *strSrc){
很简单的题目,高手进!
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都没了。