面試遇到的字串操作

2021-07-22 23:36:14 字數 844 閱讀 1663

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 要考慮沒有...