#include <iostream> #include<string> using namespace std;
char* stringcpy(char* strDest,const char* strSrc) { if(strDest==NULL||strSrc==NULL) throw "Invalid arguments(s)"; char* strDestCopy=strDest; while((*strDest++=*strSrc++)!='\0'); return strDestCopy; }
int main() { char* src="pangao"; char* dst; stringcpy(dst,src); cout<<dst<<endl; }
這裏要注意細節,注意這樣就保證了最後的結束符‘\0’都被複制到dst裏了,ios
或者stringcpy也能夠表示爲c++
char* stringcpy(char* strDest,const char* strSrc) { if(strDest==NULL||strSrc==NULL) throw "Invalid arguments(s)"; int i=0; while((strDest[i++]=*strSrc++)!='\0'); return strDest; }
或者面試
char* stringcpy(char* strDest,const char* strSrc) { if(strDest==NULL||strSrc==NULL) throw "Invalid arguments(s)"; int i=0; while((strDest[i++]=strSrc[i])!='\0'); return strDest; }
總之,數組下標或者指針後加加都表示在while條件表達式成立後再加1,至關於while(strDst[i]=strSrc[i]){++i;},仔細體會。數組