C語言中字串處理函式拾錦

2021-06-25 16:08:39 字數 3855 閱讀 1099

c語言中字串處理函式拾錦  

之前在學習c語言的時候,知道c語言庫函式中有很多字串處理函式,但是沒怎麼好好利用它。最近,發現它們的作用實在太大了,而且有些是我從來都沒有用過的。今天想整理一下,方便以後使用。比較容易理解的,就沒有舉例說明。

使用有關字串處理的庫函式,務必包含標頭檔案

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語言中處理字串的函式

在c語言中有許多字串處理函式,在寫程式的時候常常想不起來或則不了解區別,今天就花點時間將這些函式做個總結,以便以後查詢使用。char buf 10 scanf s buf 輸入 tttt3 printf buf s n buf 結果 buf tttt3 char buf1 10 scanf s s ...

C語言中的字串處理函式

strcasecmp 1,函式原型 int strcasecmp const char str1,const char str2 2,功能 比較str1和str2是否相等,忽略大小寫的差異 3,標頭檔案 include 4,返回值 str1 str2 返回0 str1 str2 返回大於0的值 st...

C語言中的字串處理函式

1 strcpy 複製字串 不安全 2 strncpy 複製n個字串 安全 3 strcat 連線字串 不安全 4 strncat 連線n個字串 安全 5 strcmp 字串比較,c語言中字串比較不能用 6 strlen 字串長度 7 strset 字串重置 9 memset 記憶體重置 10 me...