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