//字符串拷貝函數(shù)
char * sCpy(char *strDest, char *strSource)
{
_ASSERT((strDest != NULL) && (strSource!=NULL));
char *d = strDest; //獲取dest的當(dāng)前位置
char *s = strSource; //獲取source的當(dāng)前位置
while ((*d++ = *s++) != '/0') //未到最后一位,作循環(huán)
{
}
*d = '/0'; //補充最后一位
return strDest;
}
int main()
{
char *strSource = "hello,world";
char *strDest = new char[strlen(strSource)+1]; //注意,strlen函數(shù)的返回長度是不包括'/0'的,所以要加1
_ASSERT(strDest != NULL);
char *strReturn = sCpy(strDest,strSource);
cout<<"形參返回值"<<strDest<<endl;
cout<<"函數(shù)返回值"<<strReturn<<endl;
//不作釋放操作也應(yīng)該是沒問題的,主線程退出后系統(tǒng)會回收資源
delete strSource,strDest,strReturn;
strSource = strDest = strReturn = NULL;
return 0;
}
strcpy(str1,str2)函數(shù)能夠?qū)tr2中的內(nèi)容復(fù)制到str1中,為什么還需要函數(shù)返回值?應(yīng)該是方便實現(xiàn)鏈式表達式,比如:
int i_length = strlen(strcpy(str1,str2));
新聞熱點
疑難解答