C語言字串處理函式

2021-08-02 01:49:10 字數 3674 閱讀 5840

使用有關字串處理的庫函式,務必包含標頭檔案string.h,即#include

1、  比較字串大小函式

1)  忽略大小寫---strcasecmp

函式原型: int strcasecmp (const char *s1, const char *s2);

函式說明: 用來比較引數s1和s2字串,比較時會自動忽略大小寫的差異

2)忽略大小寫—stricmp

函式原型:int stricmp(char *str1, char *str2);

函式說明:以大小寫不敏感方式比較兩個串

3) 不忽略大小寫—strcmp

函式原型:int strcmp(char*str1,char*str2);

函式說明:通過比較字串中各個字元的ascii碼,來比較引數str1和str2字串,比較時考慮字元的大小寫。

4) 比較一部分—strncmpi

函式原型:int strncmpi(char *str1, char *str2, unsigned maxlen);

函式說明:比較字串str1和str2的前maxlen個字元

5)記憶體區域比較---memcmp

函式原型:int memcmp(void*buf1,void *buf2,unsigned int count)

函式說明:比較記憶體區域buf1和buf2的前count個位元組。void*是指任何型別的指標。

6)記憶體區域部分比較-- memicmp  void*是指任何型別的指標。

函式原型:int memicmp(void*buf1,void *buf2,unsigned int count)

函式說明:比較記憶體區域buf1和buf2的前count個位元組,但不區分大小寫。

以上比較函式的返回值:   若引數1中字串和引數中2字串相同則返回0;

若引數1中字串長度大於引數2中字串長度則返回大於0 的值;

若引數1中字串 長度小於引數2中字串 長度則返回小於0的值。

2、 從字串中提取子串  

1) 提取子串--strstr

函式原型:char* strstr(char*src,char*find)

函式說明:從字串src中尋找find第一次出現的位置(不比較結束符null)

返回值:返回指向第一次出現find位置的指標,如果沒有找到則返回null

2) 提取分隔符間字串—strtok

函式原型:char *strtok(char*src, char*delim);

函式說明:分解字串誒一組標記串,src為要分解的字串,delim為分隔符字串。

首次呼叫時,src必須指向要分解的字串,隨後呼叫要把s設成null;

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

返回值:從s開頭開始的乙個個被分割的串。當沒有被分割的串時則返回null。

所有delim中包含的字元都會被濾掉,並將被濾掉的地方設為一處分割的節點。

舉例:#include

#include

int  main()

return 0;}輸出

:golden

global

view

3、  字串複製

1)      字串複製--strcpy

函式原型:char*strcpy(char*dest,char*src)

函式說明:把src所指由null結束的字串複製到dest所指的陣列中。

其中,src和dest所致記憶體區域不可重疊且dest必須有足夠的空間來容納src的字串。

返回值:返回指向dest的指標。

2) 字串複製--strdup

函式原型:char* strdup(char*src)

函式說明:複製字串src

返回值:返回指向被複製字串的指標,所需空間有malloc()分配且可以有free()釋放。

3) 記憶體空間複製--memcpy

函式原型:void *memcpy(void *dest,void *src,unsigned int count);

函式說明:src和dest 所指記憶體區域不能重疊;由src所致記憶體區域複製count個位元組到dest所指記憶體區域中。

返回值:返回指向dest的指標。

4、字串連線   

1)接尾連線--strcat

函式原型:char* strcat(char*dest,char*src)

函式說明:把src所指字串新增到dest結尾處(覆蓋dest結尾處的'\0')並新增'\0'

2)部分連線--strncat

函式原型:char* strncat(char*dest,char*src,int n);

函式說明:把src所指字串的前n個字元新增到dest結尾處(覆蓋dest結尾處的』\0』)並新增』』\0』.

返回值:返回指向dest的指標。

5、從字串中查詢字元

1)記憶體區域找字元--memchr

函式原型:void *memchr(void*buf,char ch,usigned count)

函式說明:從buf所指記憶體區域的前count個位元組查詢字元ch,當第一次遇到字元ch時停止查詢。

返回值:如果找到了,返回指向字元ch的指標;否則返回null

2)字串中找字元--strchr

函式原型:char* strchr(char*src,char ch)

函式說明:查詢字串s中首次出現字元ch的位置

返回值:返回首次出現c的位置的指標,如果s中不存在c則返回null

3)搜所現字元--strcspn

函式原型:int strcspn(char*src,char*find)

函式說明:在字串src中搜尋find中所出現的字元

返回值:返回第乙個出現的字元在src中的下標值,即src中出現而不在find中出現的字串的長度。

舉例:#include

#include

int main()

輸出:the first char both in s1 and s2 is :e

4)匹配任一字元--strpbrk

函式原型:char*strpbrk(char*s1,char*s2)

函式說明:在字串s1中尋找字串s2中任何乙個字元相匹配的第乙個字元的位置,空字元不包括在內。

返回值:返回指向s1中第乙個相匹配的字元的指標,如果沒有匹配字元則返回空指標。

舉例:#include

#include

int main()

輸出:to beijing

6、其他函式

1)全部轉成大寫---strupr

函式原型:char*strupr(char*src)

函式說明:將字串src轉換成大寫形式,只轉換src中出現的小寫字母,不改變其他字元

返回值:返回指向src的指標。

2)全部轉成小寫---strlwr

函式原型:char*strlwr(char*src)

函式說明:將字串src轉換成小寫形式,只轉換src中出現的大寫字母,不改變其他字元

返回值:返回指向src的指標。

3)將字串逆向--strrev

函式原型:char*strrev(char*src)

函式說明:把字串src的所有字元的順序顛倒過來(不包括null)

返回值:返回指向顛倒順序後的字串指標

c語言字串處理函式

很高效的字串處理函式 void memccpy void dest,const void src,int c,size t n 從src所指向的物件複製n個字元到dest所指向的物件中。如果複製過程中遇到了字元c則停止複製,返回指標指向dest中字元c的下乙個位置 否則返回null。void mem...

C語言字串處理函式

字串處理函式包含在標頭檔案裡。void memchr const void str,int c,size t n 在引數 str 所指向的字串的前 n 個位元組中搜尋第一次出現字元 c 乙個無符號字元 的位置。intmemcmp const void str1,const void str2,siz...

C 語言字串處理函式

c 語言提供了比c語言更豐富的字串處理功能。它可以在字串上經行輸入,輸出,合併,修改,比較,轉換,複製,搜尋等操作。使用這些現成的功能可以大大減少我們的程式設計的負擔。輸入和輸出的字串函式,如printf,puts,cout,scanf,gets,cout等,在使用時應包含標頭檔案cstdio,並使...