C/C++之strcpy功能實現

 #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;},仔細體會。數組

參考http://www.51projob.com/筆試面試題/c和c/2357spa

相關文章
相關標籤/搜索