c++面試題字符串拷貝函數(shù)示例
#include<iostream>
using namespace std;
//字符串拷貝函數(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'; //補(bǔ)充最后一位
return strDest;
}
int main()
{
char *strSource = "hello,world";
char *strDest = new char[strlen(strSource)+1]; //注意,strlen函數(shù)的返回長(zhǎng)度是不包括'\0'的,所以要加1
_ASSERT(strDest != NULL);
char *strReturn = sCpy(strDest,strSource);
cout<<"形參返回值"<<strDest<<endl;
cout<<"函數(shù)返回值"<<strReturn<<endl;
//不作釋放操作也應(yīng)該是沒問題的,主線程退出后系統(tǒng)會(huì)回收資源
delete strSource,strDest,strReturn;
strSource = strDest = strReturn = NULL;
return 0;
}
strcpy(str1,str2)函數(shù)能夠?qū)tr2中的內(nèi)容復(fù)制到str1中,為什么還需要函數(shù)返回值?應(yīng)該是方便實(shí)現(xiàn)鏈?zhǔn)奖磉_(dá)式,比如:
int i_length = strlen(strcpy(str1,str2));
相關(guān)文章
詳解數(shù)據(jù)結(jié)構(gòu)C語(yǔ)言實(shí)現(xiàn)之循環(huán)隊(duì)列
在我們生活中有很多隊(duì)列的影子,可以說與時(shí)間相關(guān)的問題,一般都會(huì)涉及到隊(duì)列問題;本文詳細(xì)介紹了如何使用C語(yǔ)言實(shí)現(xiàn)循環(huán)隊(duì)列,下面一起來看看。2016-07-07
VC++植物大戰(zhàn)僵尸中文版修改器實(shí)現(xiàn)代碼
這篇文章主要介紹了VC++植物大戰(zhàn)僵尸中文版修改器實(shí)現(xiàn)代碼,可實(shí)現(xiàn)植物大戰(zhàn)僵尸中的無限陽(yáng)光與無冷卻時(shí)間功能,需要的朋友可以參考下2015-04-04
QT利用QPdfWriter實(shí)現(xiàn)繪制PDF(支持表單輸出)
這篇文章主要為大家詳細(xì)介紹了QT如何利用QPdfWriter實(shí)現(xiàn)繪制PDF,并可以支持表單輸出。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-01-01
C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的簡(jiǎn)單實(shí)例
這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06
在C語(yǔ)言里單引號(hào)和雙引號(hào)的區(qū)別
這篇文章主要介紹了在C語(yǔ)言里單引號(hào)和雙引號(hào)的區(qū)別,本文通過代碼的實(shí)例和注釋的詳細(xì)的說明了單引號(hào)和雙引號(hào)的概念與區(qū)別,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C語(yǔ)言全方位講解指針與地址和數(shù)組函數(shù)堆空間的關(guān)系
指針是C語(yǔ)言中一個(gè)非常重要的概念,也是C語(yǔ)言的特色之一。使用指針可以對(duì)復(fù)雜數(shù)據(jù)進(jìn)行處理,能對(duì)計(jì)算機(jī)的內(nèi)存分配進(jìn)行控制,在函數(shù)調(diào)用中使用指針還可以返回多個(gè)值2022-04-04

