C C 字串處理函式

2021-05-22 22:06:10 字數 4980 閱讀 3335

c:

#include

1. 字串長度

extern int strlen(char *s); //返回s的長度,不包括結束符null

2. 字串比較

extern int strcmp(char *s1,char * s2);

extern int strncmp(char *s1,char * s2,int n);// 比較字串s1和s2的前n個字元。

extern int stricmp(char *s1,char * s2);//比較字串s1和s2,但不區分字母的大小寫。

extern int strnicmp(char *s1,char * s2,int n);//比較字串s1和s2的前n個字元但不區分大小寫。

extern int bcmp(const void *s1, const void *s2, int n);//比較字串s1和s2的前n個位元組是否相等,如果s1=s2或n=0則返回零,否則返回非零值。bcmp不檢查null。

說明:當s1s2時,返回值》0

3. 記憶體位元組比較

extern int memcmp(void *buf1, void *buf2, unsigned int count);

extern int memicmp(void *buf1, void *buf2, unsigned int count);//比較時不區分字母的大小寫。

說明:比較記憶體區域buf1和buf2的前count個位元組。

當buf1buf2時,返回值》0

4.附加

extern char *strcat(char *dest,char *src);//把src所指字串新增到dest結尾處(覆蓋dest結尾處的'/0')並新增'/0'。

extern char *strncat(char *dest,char *src,int n);//把src所指字串的前n個字元新增到dest結尾處(覆蓋dest結尾處的'/0')並新增'/0'。

說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。返回指向dest的指標。

5.複製

extern char *strcpy(char *dest,char *src);//把src所指由null結束的字串複製到dest所指的陣列中。

extern char *stpcpy(char *dest,char *src);//同上

extern char *strncpy(char *dest, char *src, int n);//把src所指由null結束的字串的前n個位元組複製到dest所指的陣列中。

extern void bcopy(const void *src, void *dest, int n);//將字串src的前n個位元組複製到dest中,bcopy不檢查字串中的空位元組null,函式沒有返回值。

extern char *strdup(char *s);複製字串s,返回指向被複製的字串的指標,他由malloc()分配且使用後可以由free()釋放。

說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。返回指向dest的指標。

6.記憶體位元組複製

extern void *memcpy(void *dest, void *src, unsigned int count);//由src所指記憶體區域複製count個位元組到dest所指記憶體區域。src和dest所指記憶體區域不能重疊,函式返回指向dest的指標。

extern void *memmove(void *dest, const void *src, unsigned int count);//同上,但src和dest所指記憶體區域可以重疊,而複製後src內容會被更改。函式返回指向dest的指標。

extern void movmem(void *src, void *dest, unsigned int count);//由src所指記憶體區域複製count個位元組到dest所指記憶體區域。src和dest所指記憶體區域可以重疊,但複製後src內容會被更改。函式返回指向dest的指標。

extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);//由src所指記憶體區域複製不多於count個位元組到dest所指記憶體區域,如果遇到字元ch則停止複製。返回指向字元ch後的第乙個字元的指標,如果src前n個位元組中不存在ch則返回null。ch被複製。

7.查詢

extern char *strchr(char *s,char c);//查詢字串s中首次出現字元c的位置。返回首次出現c的位置的指標,如果s中不存在c則返回null。

extern int strcspn(char *s1,char *s2);//在字串s1中搜尋s2中所出現的字元。返回第乙個出現的字元在s1中的下標值,即在s1中出現而s2中沒有出現的子串的長度。

extern char *strpbrk(char *s1, char *s2);//在字串s1中尋找字串s2中任何乙個字元相匹配的第乙個字元的位置,空字元null不包括在內。返回指向s1中第乙個相匹配的字元的指標,如果沒有匹配字元則返回空指標null。

extern char *strstr(char *haystack, char *needle);//從字串haystack中尋找needle第一次出現的位置(不比較結束符null)。返回指向第一次出現needle位置的指標,如果沒找到則返回null。

8.記憶體位元組查詢

extern void *memchr(void *buf, char ch, unsigned count);//從buf所指記憶體區域的前count個位元組查詢字元ch。如果成功,返回指向字元ch的指標;否則返回null。

9.轉換

extern char *strlwr(char *s);//將字串s轉換為小寫形式。

extern char *strupr(char *s);//將字串s轉換為大寫形式

10.重置

extern char *strset(char *s, char c);//把字串s中的所有字元都設定成字元c。返回指向s的指標。

extern void bzero(void *s, int n);//置位元組字串s的前n個位元組為零。

extern void setmem(void *buf, unsigned int count, char ch);//把buf所指記憶體區域前count個位元組設定成字元ch。

extern void *memset(void *buffer, int c, int count);//把buffer所指記憶體區域的前count個位元組設定成字元c。返回指向buffer的指標。

11.倒序

extern char *strrev(char *s);//把字串s的所有字元的順序顛倒過來(不包括空字元null)。返回指向顛倒順序後的字串指標。

12.分割字串

extern char *strtok(char *s, char *delim);//分解字串為一組標記串。s為要分解的字串,delim為分隔符字串。

說明:首次呼叫時,s必須指向要分解的字串,隨後呼叫要把s設成null。

strtok在s中查詢包含在delim中的字元並用null('/0')來替換,直到找遍整個字串。

返回指向下乙個標記串。當沒有標記串時則返回空字元null。

c++:

string str;

1. 字串長度

len = str.length();

len = str.size();

2. 字串比較

可以直接比較

也可以:

str1.compare(str2); 

str1.compare(pos1,len1,str2,pos2,len2); 值為負,0 ,正。

nops 長度到完。

3. 附加

str2 = str1.substr();

str2 = str1.substr(pos1);

str2 = str1.substr(pos1,len1);

5. 字串搜尋

where = str1.find(str2);

where = str1.find(str2,pos1); pos1是從str1的第幾位開始。

where = str1.rfind(str2); 從後往前搜。

6. 插入字串

不是賦值語句。

str1.insert(pos1,str2);

str1.insert(pos1,str2,pos2,len2);

str1.insert(pos1,numchar,char);    numchar是插入次數,char是要插入的字元。

7. 替換字串

str1.replace(pos1,str2);

str1.replace(pos1,str2,pos2,len2);

8. 刪除字串

str.erase(pos,len)

str.clear();

9. 交換字串

swap(str1,str2);

10. c --> c++

char *cstr = "hello";

string str1;

cstr = cstr;

string str2(cstr);

C C 字串處理函式

c char st 100 1.字串長度 strlen st 2.字串比較 strcmp st1,st2 strncmp st1,st2,n 把st1,st2的前n個進行比較。3.附加 strcat st1,st2 strncat st1,st2,n n表示連線上st2的前n個給st1,在最後不要加...

C C 字串處理函式

c char st 100 1.字串長度 strlen st 2.字串比較 strcmp st1,st2 strncmp st1,st2,n 把st1,st2的前n個進行比較。3.附加 strcat st1,st2 strncat st1,st2,n n表示連線上st2的前n個給st1,在最後不要加...

C C 字串相關處理

1.strcpy strcpy char dest,const char src 把從src位址開始且含有 0 結束符的字串複製到以dest開始的位址空間。2.strcmp strcmp char 字串1,char 字串2 比較兩個字串 設這兩個字串為str1,str2,若str1 str2,則返回...