每天學一點庫函式10

2021-09-11 02:22:54 字數 1781 閱讀 3371

本文中將會介紹memmove、memset、strpbrk、strrev命令。

其語法結構為。

void *memmove(void *dest, const void *src, unsigned int count);

功能均為由src所指記憶體區域複製count個位元組到dest所指記憶體區域。src和dest所指記憶體區域可以重疊,但複製後src內容會被更改。函式返回指向dest的指標。

char a[32]= "welcome to my blog!", b[32];

memmove(b, a+1, 20);

cout << a<< endl;

cout << b<< endl;

執行以上程式可以得到如下結果。

如圖所示,本程式將a[1]到a[20]之間的內容拷貝到了b。由於b未經過初始化,在其後部分的內容是隨機值,輸出後便成為了「燙」。

其語法結構為void *memset(void *buffer, int c, int count);

功能也比較簡單,是把buffer所指記憶體區域的前count個位元組設定成字元c。然後返回指向buffer的指標。

執行以下**。

char str = "hallo world!";

memset(str, 'k', 5);

cout << str << endl;

可得到以下結果。

其語法結構為char *strpbrk(char *s1, char *s2);

功能為在字串s1中尋找字串s2中任何乙個字元相匹配的第乙個字元的位置,空字元null不包括在內。返回指向s1中第乙個相匹配的字元的指標,如果沒有匹配字元則返回空指標null。

char str1 = "hallo world!";

char str2 = "wellcome";

cout << *strpbrk(str1, str2) << endl;

執行以上**,執行結果如圖所示。

當然,這是輸出的『l』,並非1。如果未找到的話會輸出null,這樣執行以上**就會崩潰掉,因此在解引用時必須判斷其是否為空。

其語法結構為char *strrev(char *s);

功能是把字串s的所有字元的順序顛倒過來(不包括空字元null)。然後返回指向顛倒順序後的字串指標。

如圖所示,該函式是在原位址的基礎上進行修改的,故第二次輸出是與str尾部的順序相同。

本文使用的作業系統是windows 7 64位處理器。

使用的軟體是microsoft visual studio 2015

在使用字元函式的時候,應該在原始檔中新增以下命令

#include

每天學一點(一)

記錄學習內容 js中對於函式的建立,在使用函式表示式和函式宣告相結合時,正確寫法為 var sum function sum a,b console.log sum 1,2 輸出3 若定義的變數和函式名稱書寫不一致,則會產生錯誤。var sum1 function sum2 a,b console....

每天學一點6

1.void運算子 作用於任何值都將返回undefined,常用遮蔽超連結的返回值 舉例 鳳凰網 2.window.prompt 彈出乙個輸入對話方塊 語法格式 prompt text defaulttext 引數說明 text 提示資訊 defaulttext 是可選項,是輸入框中預設顯示的文字 ...

每天學一點Python

9月11日 1.用list實現python裡的?條件表示式 false true 判斷條件 其實就是乙個list 0 還是list 1 的問題。條件成立就是list 1 不成立就是list 0 非常簡單。2.用python寫乙個氣泡排序 def mysort list for j in range ...