1.menccpy(void *dest,const void *src,int c,size_t n)
從src所指向的物件複製n個字元到dest所指向的物件中,如果複製過程中遇到了c則停止複製,如果存在c則返回指向c下乙個位置的指標若不存在則返回null。
問題:上邊的原型是書中給的,可是查了網上的內容發現函式原型是:原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);
也就是說是可以使用char型別作為停止字元的。
#include using namespace std;
int main()
輸出結果為:string[a]也就是說後面的就沒有在複製。
但是這裡遇到了乙個比較有趣的現象,我們知道cout和printf過載了一些字串的輸出方法,若cout和printf後面的引數為陣列名或者是指標則輸出這個陣列或字串。在使用memccpy()函式時,總是在末尾出現亂碼,後來發現是我分配的空間比src要大。後來就想為malloc的這一部分記憶體初始化,但奇怪的地方出現了具體**為:
如果放在初始化的後面,結果為:
不知道為什麼?有知道希望告知下。
後來繼續看發現有乙個函式可以直接對記憶體初始化,後面說。
2.void * memcpy(void *dest,const void *src,size_t n)
從src中複製n個字元到dest中。其他的和menccpy一樣。
但是這兩個方法都不考慮記憶體重疊也就是說記憶體重疊在這兩個方法裡面都未定義,因此使用這兩個方法時要確定不會發生記憶體重疊。否則還是使用memmov()。
3.void * memmove(void *dest,condt void *src,size_t n)
從src所指向的物件複製n個字元到dest所指向的物件中,效果和memcpy一樣,只是增加了記憶體重疊的檢測。
4.char * stpcpy(char *dest,char *src)
同樣strcpy也是不檢測記憶體重疊的,因此相應的會有乙個檢測記憶體重疊的方法,這個方法就是stpcpy。效果和strcpy一樣,同樣只是增加了記憶體重疊的檢測。
5。char *strcat(char *dest,const char *src)
將字串src新增到dest尾部,覆蓋dest的『\0』。
6.char * strlwr(char *s)
char * strupr(char *s)
將字串s全部轉成小寫和大寫。
7.char *strset(char *s,char c)
將字串初始化全部為c,本來以為很好用可以為字串初始化,但是用了之後才發現了乙個問題,就是越界,原因是strset是以『\0』為結束標誌的,但是這個字串本來就沒賦值**來的'\0',具體的**為:
#include using namespace std;
int main()
{char *a = "abcd3efghi";
char *b = (char *)malloc(15*sizeof(char));
strset(b,'q');
char *e;e = b;
memccpy(b,a,3,5);
cout<
但是會報錯:
所以使用strset時要注意這個問題,不然會發生想不到的錯誤。
8.void * memset(void *s,int c,size_t n)
將s的前n個字元替換成c。但是沒那麼智慧型,memcpy是對位元組賦值也就是說如果是對char型資料初始化是沒問題的,但是如果對其他型別的話是可以賦值但是輸出一下就知道不是你想要的。因為有size_t這個引數所以可以保證他在你想要的地方結束,不會發生上面的問題。
9.char * strrev(char *s)
將字串全部翻轉,返回指標指向翻轉後的字串。
字串處理2
include include include 將包含字元數字的字串分開,使得分開後的字串前一部分是數字後一部分是字母 例如 h1ell2o3 123hello void disword else i b bi 0 tmp cnt 0 strcat b,tmp printf s n b 將字串中的空...
python處理字串(2)
上次得到的ip格式是 74.121.139.0 74.121.139.255 美國 0 0 0 0 那麼這次為了構建樹查詢我們將用python將ip轉換為這種格式 1 0 4 1 0 7 澳大利亞 0 0 0 0 就是將 和每段ip最後的字段去掉 ip最後的字段只是標示其為主機還是伺服器,對其地理位...
2 Python 字串處理
方法名 含義 說明 title 以首字母大寫方式顯示每個單詞。herbet lower 將字串轉換為小寫形式。herbet upper 將字串裝換為大寫形式。herbet python使用加號 來合併字串。first name herbet last name chang full name fir...