提示:僅供參考,如有錯誤,還望指出。
創(chuàng)新互聯(lián)公司是一家專業(yè)從事網(wǎng)站設(shè)計、網(wǎng)站制作的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)站制作公司,創(chuàng)新互聯(lián)公司依托的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、成都全網(wǎng)營銷及網(wǎng)站設(shè)計開發(fā)服務(wù)!
目錄
一、字符串復(fù)制
二、一些優(yōu)化
1.一次簡單優(yōu)化
2.二次優(yōu)化
3.三次優(yōu)化
4.四次優(yōu)化
5.最后的優(yōu)化
總結(jié)
前言
以下是對字符串復(fù)制的一些優(yōu)化
一、字符串復(fù)制這是自己能想到的方法
主要思想:通過兩個指針,對二者進行遍歷,若該被復(fù)制的字符不為‘\0’來進行一一復(fù)制。
可是這樣‘\0’字符就無法復(fù)制,而此時被復(fù)制字符的地址剛好又是‘\0’,再進行一次復(fù)制就好。
//我的字符串復(fù)制
void my_strcpy(char* dest,char* rsc)
{
while (*rsc != '\0')
{
*dest = *rsc;
dest++;
rsc++;
}
*dest = *rsc;
}
二、一些優(yōu)化1.一次簡單優(yōu)化注:這些優(yōu)化都是基于前一次的優(yōu)化,也體現(xiàn)出一個循序漸進的過程
這里實現(xiàn)了一小點的優(yōu)化,也就是將三句語句合成一句
void my_strcpy(char* dest, char* rsc)
{
while (*rsc != '\0')
{
*dest++ = *rsc++;
}
*dest = *rsc;
}
2.二次優(yōu)化
這里實現(xiàn)了我們既可以賦值字符也能夠復(fù)制'\0'
由于當(dāng)被復(fù)制的字符為‘\0’時,也得到了復(fù)制,同時還跳出了循環(huán)
void my_strcpy(char* dest, char* rsc)
{
while (*dest++ = *rsc++)
{
;
}
}
這里優(yōu)化了健壯性,可這里沒有體現(xiàn)出問題在哪。
在二次優(yōu)化中,添加了一個判斷語句,只有二者同時不為空指針時,才會進入遍歷復(fù)制的過程。
void my_strcpy(char* dest, char* rsc)
{
if (dest != NULL && rsc != NULL)
{
while (*dest++ = *rsc++)
{
;
}
}
}
這里用到了斷言函數(shù)assert();同時需要添加該頭文件
使用assert()函數(shù),若不滿足函數(shù)體中條件,就會報錯,并且具體體現(xiàn)在哪一行,更有利于找錯。
#include
my_strcpy(char* dest, char* rsc)
{
assert(dest != NULL);
assert(rsc != NULL);
while (*dest++ = *rsc++)
{
;
}
}
這個就比較細節(jié),也是為了防止一些錯誤而形成的優(yōu)化。
在被復(fù)制字符中加上一個const,為了防止while循環(huán)中的條件,若不注意將二者位置調(diào)換,就會出現(xiàn)報錯的情況。
這里也給大家推薦一個網(wǎng)站cplusplus.com - The C++ Resources Network?
若有不懂的函數(shù)或者函數(shù)需要的頭文件都可以在這里查。? ? ? ? ?這里也到了strcpy函數(shù)中參數(shù)的類型,若以后要寫類似于庫函數(shù)的函數(shù)也可以考慮這里面的參數(shù)類型。
#include
void my_strcpy(char* dest, const char* rsc)
{
assert(dest != NULL);
assert(rsc != NULL);
while (*dest++ = *rsc++)
{
;
}
}
?在我看來,編程很像數(shù)學(xué),每當(dāng)你了解到一個題目的多種解法后,有些解法會給人一種十分奇妙的感覺,也有一種勾起好奇心的感覺,就是由于這種好奇心,促使這我們成長。不過有時候的編程也很乏味,但是我們一定要堅持。
學(xué)習(xí)不易,如果這篇對你有幫助,足矣。
最后附上學(xué)習(xí)的鏈接(同樣要是有一起學(xué)習(xí)的伙伴就更好了)
25.VS環(huán)境-C語言實用調(diào)試技巧(2)(C語言程序設(shè)計教程譚浩強 c語言譚浩強視頻教程 c語言零基礎(chǔ)入門教程 學(xué)習(xí)c語言 c語言視頻教程 c語音 C語言教程_嗶哩嗶哩_bilibili
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站欄目:C語言的字符串復(fù)制-創(chuàng)新互聯(lián)
鏈接地址:http://chinadenli.net/article2/djgioc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、Google、自適應(yīng)網(wǎng)站、全網(wǎng)營銷推廣、網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容