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)該是沒(méi)問(wèn)題的,主線程退出后系統(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)文章
Qt進(jìn)程和線程QProcess和QThread的使用
本文主要介紹了Qt進(jìn)程和線程QProcess和QThread的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06C++異常處理 try,catch,throw,finally的用法
這篇文章主要介紹了C++異常處理 try,catch,throw,finally的用法,需要的朋友可以參考下2018-01-01C++可變參數(shù)的函數(shù)與模板實(shí)例分析
這篇文章主要介紹了C++可變參數(shù)的函數(shù)與模板,非常重要的概念,需要的朋友可以參考下2014-08-08C語(yǔ)言 OutputDebugString與格式化輸出函數(shù)OutputDebugPrintf案例詳解
這篇文章主要介紹了C語(yǔ)言 OutputDebugString與格式化輸出函數(shù)OutputDebugPrintf案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08數(shù)據(jù)結(jié)構(gòu)之位圖(bitmap)詳解
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之位圖詳解,本文講解了位圖的基本知識(shí)、位圖的實(shí)現(xiàn)方法、位圖的應(yīng)用等內(nèi)容,需要的朋友可以參考下2014-08-08C++ throw關(guān)鍵字實(shí)現(xiàn)拋出異常和異常規(guī)范
本文主要介紹了C++ throw關(guān)鍵字實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08