亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++中strcpy函數(shù)的實現(xiàn)

2020-05-23 14:14:06
字體:
供稿:網(wǎng)友

strncpy這個可以指定拷貝字符的長度,指定源地址,目標地址,還有需要拷貝的字符的長度; strcpy只能傳入兩個參數(shù),只指定拷貝的起始地址跟目標地址,然后整體拷貝;

我們先來看個例子

 

 
  1. char * strcpy(char * strDest,const char * strSrc) { 
  2.   if ((NULL==strDest) || (NULL==strSrc))  
  3.     throw "Invalid argument(s)"
  4.   char * strDestCopy = strDest; 
  5.   while ((*strDestCopy++ = *strSrc++) != '/0'); 
  6.   return strDest; 

突然想到之前做過的一個試題

題目:

已知strcpy函數(shù)的原型是:

char * strcpy(char * strDest,const char * strSrc);

1.不調(diào)用庫函數(shù),實現(xiàn)strcpy函數(shù)。

2.解釋為什么要返回char *。

解說:

1.strcpy的實現(xiàn)代碼

 

 
  1. char * strcpy(char * strDest,const char * strSrc) 
  2.  
  3.  
  4. if ((strDest==NULL)||(strSrc==NULL)) //[1] 
  5.  
  6. throw "Invalid argument(s)"//[2] 
  7.  
  8. char * strDestCopy=strDest; //[3] 
  9.  
  10. while ((*strDest++=*strSrc++)!='/0'); //[4] 
  11.  
  12. return strDestCopy; 
  13.  

錯誤的做法:

[1]

(A)不檢查指針的有效性,說明答題者不注重代碼的健壯性。

(B)檢查指針的有效性時使用((!strDest)||(!strSrc))或(!(strDest&&strSrc)),說明答題者對C語言中類型的隱式轉(zhuǎn)換沒有深刻認識。在本例中char *轉(zhuǎn)換為bool即是類型隱式轉(zhuǎn)換,這種功能雖然靈活,但更多的是導(dǎo)致出錯概率增大和維護成本升高。所以C++專門增加了bool、true、false三個關(guān)鍵字以提供更安全的條件表達式。

(C)檢查指針的有效性時使用((strDest==0)||(strSrc==0)),說明答題者不知道使用常量的好處。直接使用字面常量(如本例中的0)會減少程序的可維護性。0雖然簡單,但程序中可能出現(xiàn)很多處對指針的檢查,萬一出現(xiàn)筆誤,編譯器不能發(fā)現(xiàn),生成的程序內(nèi)含邏輯錯誤,很難排除。而使用NULL代替0,如果出現(xiàn)拼寫錯誤,編譯器就會檢查出來。

[2]

(A)return new string("Invalid argument(s)");,說明答題者根本不知道返回值的用途,并且他對內(nèi)存泄漏也沒有警惕心。從函數(shù)中返回函數(shù)體內(nèi)分配的內(nèi)存是十分危險的做法,他把釋放內(nèi)存的義務(wù)拋給不知情的調(diào)用者,絕大多數(shù)情況下,調(diào)用者不會釋放內(nèi)存,這導(dǎo)致內(nèi)存泄漏。

(B)return 0;,說明答題者沒有掌握異常機制。調(diào)用者有可能忘記檢查返回值,調(diào)用者還可能無法檢查返回值(見后面的鏈式表達式)。妄想讓返回值肩負返回正確值和異常值的雙重功能,其結(jié)果往往是兩種功能都失效。應(yīng)該以拋出異常來代替返回值,這樣可以減輕調(diào)用者的負擔、使錯誤不會被忽略、增強程序的可維護性。

[3]

(A)忘記保存原始的strDest值,說明答題者邏輯思維不嚴密。

[4]

(A)循環(huán)寫成while (*strDest++=*strSrc++);,同[1](B)。

(B)循環(huán)寫成while (*strSrc!='/0') *strDest++=*strSrc++;,說明答題者對邊界條件的檢查不力。循環(huán)體結(jié)束后,strDest字符串的末尾沒有正確地加上'/0'。

2.返回strDest的原始值使函數(shù)能夠支持鏈式表達式,增加了函數(shù)的“附加值”。同樣功能的函數(shù),如果能合理地提高的可用性,自然就更加理想。

鏈式表達式的形式如:

int iLength=strlen(strcpy(strA,strB));

又如:

char * strA=strcpy(new char[10],strB);

返回strSrc的原始值是錯誤的。其一,源字符串肯定是已知的,返回它沒有意義。其二,不能支持形如第二例的表達式。其三,為了保護源字符串,形參用const限定strSrc所指的內(nèi)容,把const char *作為char *返回,類型不符,編譯報錯。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产 欧美 日本| 国产福利拍拍拍| h网站在线免费观看| 亚洲高清二区| 欧美**vk| 久久久久99精品成人片三人毛片| 日韩欧美一区二区在线视频| 国产aⅴ爽av久久久久成人| 精品人妻少妇AV无码专区| www.av视频| 国产娇喘精品一区二区三区图片| 九九视频精品全部免费播放| 一二三区视频在线观看| 亚洲国产裸拍裸体视频在线观看乱了| 免费在线视频一级不卡| 热久久最新网址| 国产美女www爽爽爽| aaaa一级片| jlzzjlzz亚洲日本少妇| 国产美女视频网站| av中文字幕免费在线观看| 超碰精品在线| 午夜av免费观看| 国产欧美日韩一区二区三区在线| 国产精品111| 亚洲国产合集| 国语对白永久免费| 日本在线观看大片免费视频| h网站免费观看| 欧美日韩中文国产一区发布| 成人免费视频a| 一本色道88久久加勒比精品| 91手机在线播放| h视频免费高清在线观看| 亚洲va久久久噜噜噜| 三级av在线免费观看| 久国产精品韩国三级视频| 亚洲女同中文字幕| 黄色网址在线免费播放| av资源免费观看| 成人黄色大片在线免费观看| 国产jk精品白丝av在线观看| 免费av在线播放| 国产青青草在线| 中文人妻熟女乱又乱精品| 日韩精品久久久免费观看| 国语自产精品视频在线看抢先版结局| 国内一区二区在线| 黄页在线观看视频| 欧美成人免费看| 国产美女明星三级做爰| 日韩在线观看免费高清完整版| 黄色一级片黄色| 欧美日韩成人综合在线一区二区| 午夜精品在线免费观看| 天堂中文字幕在线观看| 中文字幕一区二区三区四| 亚洲国产综合av| 国产在线一二三区| 久久悠悠精品综合网| 久久美女免费视频| 91视频成人| 无遮挡爽大片在线观看视频| 国产成人午夜精品影院观看视频| 国产精品久久久久毛片软件| 国产亚洲欧美一区在线观看| 亚洲国产视频a| 欧美国产一区二区三区| 日韩av在线天堂| 日本午夜激情视频| 欧美国产一区视频在线观看| 日本欧洲国产一区二区| 国产视频亚洲色图| 一本久久a久久精品亚洲| 91精品国产免费久久综合| 国产精品永久免费观看| 在线电影一区二区| 国产原创在线视频| 国产精品丝袜黑色高跟| 国产精品视频自在线| 五月丁香综合缴情六月小说| heyzo中文字幕在线| 亚洲专区欧美专区| 欧美重口乱码一区二区| 免费h视频网站| 欧美性色综合网| 国产精品亚洲欧美导航| 国产精品91在线| 国产厕所精品在线观看| 欧美 国产 综合| 无码精品一区二区三区在线| 国产麻豆成人传媒免费观看| 污污污www精品国产网站| 中文字幕69页| 久久久久久中文| www.午夜| 69堂免费视频| 国产精品偷伦免费视频观看的| 激情综合色播五月| 欧美成人video| 亚洲综合成人av| 日本成人精品视频| 亚洲天堂在线播放| 久久品道一品道久久精品| 亚洲字幕成人中文在线观看| 欧美亚洲国产视频小说| 国产精品入口麻豆免费| 四虎影视网站| 免费成人在线看| 婷婷激情综合网| h网站久久久| 国产在视频线精品视频| 性一交一黄一片| 天天综合网 天天综合色| 91在线看网站| 国产绳艺sm调教室论坛| 无码人妻少妇色欲av一区二区| 成人h动漫精品一区二区下载| 99精品国产福利在线观看免费| 亚洲在线视频一区| 国产日产亚洲系列最新| 久艹视频在线观看| 久久影院理伦片| 精品久久香蕉国产线看观看亚洲| 99久久久无码国产精品性色戒| 91精品国产综合久久香蕉的特点| 丝袜美腿玉足3d专区一区| 亚洲欧美另类图片| 亚洲欧美久久久久一区二区三区| 日韩精品一卡二卡三卡四卡无卡| 美女100%无挡| 免费做暖暖免费观看日本| 日韩欧美第一页| 亚洲免费视频一区| 一区久久精品| 国产裸体美女永久免费无遮挡| 美女福利一区| 色婷婷久久久久swag精品| 免费看电影在线| 成人18精品视频| 亚洲成国产人片在线观看| 91麻豆精品国产91久久久平台| 美女视频免费观看网站在线| 欧美日韩三级电影在线| 欧美一级欧美三级在线观看| 国内精品区一区二区三| 艳妇乳肉豪妇荡乳xxx| 国产精品人人人人| 思热99re视热频这里只精品| 蜜臀av在线播放| 欧美手机视频| 国产亚洲精品久久久久久青梅| 踪合国产第二页| 日韩一区二区中文字幕| 欧美性猛交久久久乱大交小说| 97视频精彩视频在线观看| 色av成人天堂桃色av| 欧洲精品在线播放| 天天色天天干天天色| 国产精品毛片一区视频播| 国产精品作爱| 国产91精品久| 天堂在线网站| 黑人欧美xxxx| 欧洲精品一区二区三区久久| www欧美xxxx| 天天影视综合| 成人在线一区二区| 国产精品免费一区二区三区在线观看| 久久国产精品毛片| 免费色片视频| 884aa四虎影成人精品一区| 日本h片在线看| 国产欧美综合精品一区二区| 国产综合久久久久久鬼色| 国产一区二区在线观看免费播放| 在线精品一区二区三区| 成人一区二区三区| 成人免费在线播放| 国产乱妇乱子在线播视频播放网站| 亚洲av片不卡无码久久| 99re5久久在热线播放| 毛片在线免费| 污污视频在线免费看| 日韩欧美一区二区在线| 久久免费少妇高潮99精品| 日韩综合av| 在线看三级电影| 青青草手机视频在线观看| 久久精品国产亚洲精品2020| 99久久国产综合精品色伊| xxxxwww一片| 成人精品影视| 久久精品国产在热久久| 午夜精品一区二区三区四区| 国产午夜精品在线观看| 毛片av在线播放| 婷婷综合一区| 亚洲在线免费观看视频| 欧美一级片久久久久久久| 日本手机在线视频| 日韩黄色一级视频| 国产精品最新| 午夜成年女人毛片免费观看| 成人av免费观看| 天天看天天色| 亚洲高清一二三区| 天天综合日日夜夜精品| 91精品推荐| 成年人视频网站免费| 久久都是精品| 免费一级全黄少妇性色生活片| 污视频在线免费观看网站| 国产免费无遮挡吸奶头视频| 3d欧美精品动漫xxxx无尽| 私拍精品福利视频在线一区| 色婷婷综合在线| 中文字幕精品—区二区日日骚| 熟妇人妻久久中文字幕| 九色91popny| 日日骚av一区二区| 欧美一二三四区在线| 欧美蜜桃一区二区三区| 久久影院电视剧免费观看| 在线观看国产视频| 日韩毛片在线免费观看| av无码精品一区二区三区| 91中文在线视频| 欧美有码视频| 999sesese| 首页欧美精品中文字幕| 亚洲欧洲精品视频| 成人免费观看在线观看| 日本美女爱爱视频| 国产69精品久久久久999小说| 日韩成人在线看| 欧美视频第二页| 在线成人激情| 国产成人午夜视频网址| 中文字幕+乱码+中文| 精品国产亚洲一区二区三区在线| 91久久精品国产性色| 日韩欧美在线1卡| 日韩中文字幕第一页| 蜜桃色永久入口| 麻豆一区二区三区视频| 日本全棵写真视频在线观看| 国产精品久久久精品| 日韩不卡一区二区| 欧美成人国产一区二区| 免费av高清| xxx电影网| 久久亚洲视频| 亚洲精品在线播放| 黄网站免费在线播放| 久久婷婷色综合| 精品一区二区av| 小明看看成人免费视频| 欧美人与动牲交xxxxbbbb| 国内不卡一区二区三区| 九色91在线视频| 视频在线日韩| 久久免费视频一区| 在线免费一区| 亚洲素人在线| 91色乱码一区二区三区| 中国美女乱淫免费看视频| 国产精品v片在线观看不卡| 国产亚洲欧美一区二区三区| 国产精品久久久毛片| 精品视频9999| 欧美hdxxxxx| 韩日在线视频| 亚洲综合自拍一区| 久久久午夜视频| 成人女性文胸| 国产精品一区二区三区视频网站| 欧美极品在线观看| 日韩女优制服丝袜电影| 日韩xxx高潮hd| 爱福利视频一区| 99国产欧美另类久久久精品| 韩国女主播成人在线观看| 国产精品四虎| 午夜视频www| 久久出品必属精品| 先锋资源一区二区| 亚洲国产一区二区精品视频| 国产综合动作在线观看| 五月婷在线视频| 国产精品你懂的在线| 欧美小视频在线观看| 欧美二区不卡| 久久久精品中文字幕麻豆发布| 亚洲啊v在线| 亚洲精品久久久久久一区二区| zzijzzij亚洲日本成熟少妇| 久久久久久久久久久久电影| 青丝免费观看高清影视| 午夜精品视频在线| 国产99久久久久| 国产精品手机播放| 在线人成动漫视频在线观看| 亚洲高清视频的网址| 亚洲三级av| 一级做a爰片久久| 在线一区视频观看| 69堂成人精品免费视频| 日本vs亚洲vs韩国一区三区| 欧美国产激情一区二区三区蜜月| 美女视频在线免费| 色伦专区97中文字幕| 99这里只有精品视频| 日韩精品中文字幕久久臀| 日韩系列在线| 无码 人妻 在线 视频| 在线播放国产精品二区一二区四区| 精品va天堂亚洲国产| 亚洲一二三四在线观看| 一区二区三区欧美在线| 92国产精品视频| 欧美r级电影在线观看| 性生活免费在线观看| 精品无人乱码| 免费在线观看a| 在线免费国产视频| 熟妇人妻一区二区三区四区| 欧美人动性xxxxz0oz|