源碼實現 --> strcpy

拷貝字符串到目標字符串

函數

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

複製源串strSource到目標串strDestination所指定的位置,包含NULL結束符, 不能處理源串與目標串重疊的狀況.ios

函數返回strDestination值.函數

 

源碼

char *strcpys(char *strDes, const char *strSrc) {     
    assert((strDes != NULL) && (strSrc != NULL)); //assert用以檢測是否爲空,經過assert處理異常來返回NULL   
    char *address = strDes;     
    while ((*strDes ++ = *strSrc ++) != '\0')        
        NULL;     
    return address; 
}

關鍵點:assert判斷有效性;NULL結束符。測試

其實,能夠不用指針變量address,只需返回strDes便可。spa

 

測試

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

輸出結果:指針

i am teacher!
相關文章
相關標籤/搜索