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

相关文章
相关标签/搜索