strlen strcpy和strcmp原始碼

2022-07-25 17:45:13 字數 1455 閱讀 9673

1、不使用庫函式實現strcpy

#include 

char *strcpy(char *dst, const char *src)

return tmp;

}需要注意幾個方面的問題:

1、注意程式設計風格。比如,使用

dst、

src這樣增強可讀性的名字。

2、使用斷言assert來檢驗輸入引數的有效性。

assert巨集的原型定義在

中,其作用是如果它的條件返回false,則終止程式執行。可以在任何時候啟用和禁用斷言驗證,因此可以在測試時啟用斷言,而在部署時禁

用斷言。

3、使用

const

來約束src

,表明src

對應的內容不能被修改。

4、返回

dst,以便實現鏈式表示式這樣的機制。

2、strlen

函式原始碼

size_t strlen_b(const char * str) 

3、微軟

strcmp

函式原始碼

int __cdecl strcmp (const char *src, const char *dst)

if ( ret < 0 )   

ret = -1 ;   

else if ( ret > 0 )   

ret = 1 ;   

return( ret );

}4、面試中

strcpy

原始碼的判分標準

如果編寫乙個標準strcpy

函式的總分值為

10,下面給出幾個不同得分的答案:2分

void strcpy( char *strdest, char *strsrc )   4分 

void strcpy( char *strdest, const char *strsrc )

//將源字串加

const

,表明其為輸入引數,加2分

7分 void strcpy(char *strdest, const char *strsrc)   

10分 

//為了實現鏈式操作,將目的位址返回,加3分

!char * strcpy( char *strdest, const char *strsrc )

從2分到

10分的幾個答案我們可以清楚的看到,需要多麼紮實的基本功才能寫乙個完美的

strcpy。 

5、對strlen

的掌握,它沒有包括字串末尾的

'\0'

看了不同分值的strcpy

版本,應該也可以寫出乙個

10分的

strlen

函式了,完美的版本為: 

int strlen( const char *str ) //

輸入引數

const,2

分     return len;  }

樹狀陣列和ST表

binary index tree 用來解決動態字首和問題的資料結構。樹狀陣列或者二叉索引樹也稱作binary indexed tree,又叫做fenwick樹 它的查詢和修改的時間複雜度都是log n 空間複雜度則為o n 這是因為樹狀陣列通過將線性結構轉化成樹狀結構,從而進行跳躍式掃瞄。通常使用...

ST3 外掛程式和技巧

emmet外掛程式 快速生成html文件結構,快速編寫跨瀏覽器的css並自動幫助你同時編輯,強大 語法技巧 簡單實用,值得掌握 sidebar enhancements外掛程式 改進了側邊欄,增加了許多功能.挺好的 ctrl 滑鼠左鍵 可以多處選中,也可以雙擊乙個,然後ctrl d自動向下選中同名的...

st語言 陣列的常用方法 ST語言

st 語言學習心得 一 工程的簡介和建立工程 1.工程檔案的結 工程檔案的字尾名為 pro,在新工程中建立的第乙個程式結構單元 program organization unit 將被自動命名為 plc prg 這個程式結構單元就類似於 c語言中的主程式。在 plc prg 中可以呼叫各種函式及功能...