首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

很简单的题目

2012-02-17 
很简单的题目,高手进!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都没了。

热点排行