1.實現memcpy函式
memcpy函式:c語言記憶體拷貝函式,使用引數為void*,以及需要拷貝記憶體的長度,以位元組為單位。
本身memcpy沒有考慮過記憶體的重疊問題,所以只需要保證需要複製的內容,複製到相應的目的位址就行了。
void* memcpy(void* des,const
void* src,size_t len)
這裡注意第二個引數是const void*
以及在運算過程當中的,char* 型別的轉換。
2.memmove 函式的實現
void* memmove(void* dest,const
void* src,size_t len)else
return dest;
}
當兩個區間的尾部重疊的時候,我們從頭部開始複製。
當兩個區間的頭部重疊的時候,我們從尾部開始複製。
3.strcpy的實現
char* strcpy(char* dest,const
char* src)
複製的時候需要注意最後的』\0』也需要複製到目標位址當中。
4.strncpy的實現
char* strncpy(char* dest,const
char* src,size_t n)
strncpy是拷貝特定數量的字元到目的位址。
如果目標位址空間比較大,需要把源位址的所有字元複製到目標位址當中,並且置目標位址後部分內容為 」\0」
如果目標位址空間太小,那麼出現不可知的問題。第二個for 不會執行。
面試經常遇到的字串切割問題
注 因為比較模糊,我簡單說一下,就a所在的位置換成a的個數 這裡要注意的是因為原題中含有字母,數字和下劃線,根據這些特點普通的查詢替換不如正則來的方便 因為我沒有封裝函式,真正面試可以先實現功能,然後再完善,最關鍵的是不管多菜,別慌 s 1a aa bbb aaa aaaa aaaaa aaaaaa...
面試 字串 字串相乘
給出兩個字串的正整數,求其乘積,返回其乘積的字串的表示 public class solution 確保每個數字大小在0 9之間 int carry 0 for int i n 1 i 0 i string result boolean firstnonzero false 將陣列轉換為字串,如果第...
字串 面試
最近看書看不下去就刷面試題,決定把字串有關面試題都寫這個文章裡 1.實現乙個函式在字串中把空格替換成 20 注意是否會發生記憶體溢位 include include using namespace std void changezi char buff,int size if num 0 要考慮沒有...