#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;},仔细体会。数组