源码实现 --> strcpy

拷贝字符串到目标字符串

函数

char *strcpy(char *strDestination, const char *strSource);

复制源串strSource到目标串strDestination所指定的位置,包含NULL结束符, 不能处理源串与目标串重叠的情况.

函数返回strDestination值.

源码

char *strcpys(char *strDes, const char *strSrc) {     
    assert((strDes != NULL) && (strSrc != NULL)); //assert用以检测是否为空,通过assert处理异常来返回NULL   
    char *address = strDes;     
    while ((*strDes ++ = *strSrc ++) != '')        
        NULL;     
    return address; 
}

关键点:assert判断有效性;NULL结束符。

其实,可以不用指针变量address,只需返回strDes即可。

测试

#include<assert.h>
#include<iostream.h>
void main()
{
    char a[20]="aaaaaaaaaaaaaaaaaa";
   char c[]="i am teacher!";
//    cout<<a<<"
"<<endl;
    //strcpy(a,c);
    char *addr=strcpys(a,c);
    cout<<addr<<endl;
    //printf("
%s",a);
}

输出结果:

i am teacher!
原文地址:https://www.cnblogs.com/jeakeven/p/5855505.html