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 中可以呼叫各種函式及功能...