使用有關字串處理的庫函式,務必包含標頭檔案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,並使...