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!