提示:僅供參考,如有錯誤,還望指出。
創(chuàng)新互聯(lián)公司是一家專業(yè)從事網(wǎng)站設(shè)計、網(wǎng)站制作的網(wǎng)絡公司。作為專業(yè)網(wǎng)站制作公司,創(chuàng)新互聯(lián)公司依托的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、成都全網(wǎng)營銷及網(wǎng)站設(shè)計開發(fā)服務!
目錄
一、字符串復制
二、一些優(yōu)化
1.一次簡單優(yōu)化
2.二次優(yōu)化
3.三次優(yōu)化
4.四次優(yōu)化
5.最后的優(yōu)化
總結(jié)
前言
以下是對字符串復制的一些優(yōu)化
一、字符串復制這是自己能想到的方法
主要思想:通過兩個指針,對二者進行遍歷,若該被復制的字符不為‘\0’來進行一一復制。
可是這樣‘\0’字符就無法復制,而此時被復制字符的地址剛好又是‘\0’,再進行一次復制就好。
//我的字符串復制
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)了我們既可以賦值字符也能夠復制'\0'
由于當被復制的字符為‘\0’時,也得到了復制,同時還跳出了循環(huán)
void my_strcpy(char* dest, char* rsc)
{
while (*dest++ = *rsc++)
{
;
}
}
這里優(yōu)化了健壯性,可這里沒有體現(xiàn)出問題在哪。
在二次優(yōu)化中,添加了一個判斷語句,只有二者同時不為空指針時,才會進入遍歷復制的過程。
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)化。
在被復制字符中加上一個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ù)學,每當你了解到一個題目的多種解法后,有些解法會給人一種十分奇妙的感覺,也有一種勾起好奇心的感覺,就是由于這種好奇心,促使這我們成長。不過有時候的編程也很乏味,但是我們一定要堅持。
學習不易,如果這篇對你有幫助,足矣。
最后附上學習的鏈接(同樣要是有一起學習的伙伴就更好了)
25.VS環(huán)境-C語言實用調(diào)試技巧(2)(C語言程序設(shè)計教程譚浩強 c語言譚浩強視頻教程 c語言零基礎(chǔ)入門教程 學習c語言 c語言視頻教程 c語音 C語言教程_嗶哩嗶哩_bilibili
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧