C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。以下是小編為大家搜索整理的C語(yǔ)言字符串處理的庫(kù)函數(shù)有哪些,希望能給大家?guī)?lái)幫助!更多精彩內(nèi)容請(qǐng)持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

  1、 比較字符串大小函數(shù)

  1) 忽略大小寫---strcasecmp

  函數(shù)原型: int strcasecmp (const char *s1, const char *s2);

  函數(shù)說(shuō)明: 用來(lái)比較參數(shù)s1和s2字符串,比較時(shí)會(huì)自動(dòng)忽略大小寫的差異

  2)忽略大小寫—stricmp

  函數(shù)原型:int stricmp(char *str1, char *str2);

  函數(shù)說(shuō)明:以大小寫不敏感方式比較兩個(gè)串

  3) 不忽略大小寫—strcmp

  函數(shù)原型:int strcmp(char*str1,char*str2);

  函數(shù)說(shuō)明:通過(guò)比較字串中各個(gè)字符的ASCII碼,來(lái)比較參數(shù)Str1和Str2字符串,比較時(shí)考慮字符的大小寫。

  4) 比較一部分—strncmpi

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

  函數(shù)說(shuō)明:比較字符串str1和str2的前maxlen個(gè)字符

  5)內(nèi)存區(qū)域比較---memcmp

  函數(shù)原型:int memcmp(void*buf1,void *buf2,unsigned int count)

  函數(shù)說(shuō)明:比較內(nèi)存區(qū)域buf1和buf2的前count個(gè)字節(jié)。Void*是指任何類型的指針。

  6)內(nèi)存區(qū)域部分比較-- memicmp Void*是指任何類型的指針。

  函數(shù)原型:int memicmp(void*buf1,void *buf2,unsigned int count)

  函數(shù)說(shuō)明:比較內(nèi)存區(qū)域buf1和buf2的前count個(gè)字節(jié),但不區(qū)分大小寫。

  以上比較函數(shù)的返回值: 若參數(shù)1中字符串和參數(shù)中2字符串相同則返回0;

  若參數(shù)1中字符串長(zhǎng)度大于參數(shù)2中字符串長(zhǎng)度則返回大于0 的值;

  若參數(shù)1中字符串 長(zhǎng)度小于參數(shù)2中字符串 長(zhǎng)度則返回小于0的值。

  2、 從字符串中提取子串

  1) 提取子串--strstr

  函數(shù)原型:char* strstr(char*src,char*find)

  函數(shù)說(shuō)明:從字符串src中尋找find第一次出現(xiàn)的位置(不比較結(jié)束符NULL)

  返回值:返回指向第一次出現(xiàn)find位置的指針,如果沒(méi)有找到則返回NULL

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

  函數(shù)原型:char *strtok(char*src, char*delim);

  函數(shù)說(shuō)明:分解字符串誒一組標(biāo)記串,src為要分解的字符串,delim為分隔符字符串。

  首次調(diào)用時(shí),src必須指向要分解的字符串,隨后調(diào)用要把s設(shè)成NULL;

  strtok中src中查找包含在delim中的字符,并用NULL(’’)來(lái)替換直到找遍整個(gè)字符串。

  返回值:從s開(kāi)頭開(kāi)始的一個(gè)個(gè)被分割的串。當(dāng)沒(méi)有被分割的串時(shí)則返回NULL。

  所有delim中包含的字符都會(huì)被濾掉,并將被濾掉的地方設(shè)為一處分割的節(jié)點(diǎn)。

  舉例:

  #include

  #include

  int main(){

  char *s="Golden Global View";

  char *d=" ";

  char *p;

  p=strtok(s,d);

  while(p){

  printf("%sn",p);

  strtok(NULL,d);

  }

  return 0;

  }

  輸出:Golden

  Global

  View

  3、 字符串復(fù)制

  1) 字串復(fù)制--strcpy

  函數(shù)原型:char*strcpy(char*dest,char*src)

  函數(shù)說(shuō)明:把src所指由NULL結(jié)束的字符串復(fù)制到dest所指的數(shù)組中。

  其中,src和dest所致內(nèi)存區(qū)域不可重疊且dest必須有足夠的空間來(lái)容納src的字符串。

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

  2) 字串復(fù)制--strdup

  函數(shù)原型:char* strdup(char*src)

  函數(shù)說(shuō)明:復(fù)制字符串src

  返回值:返回指向被復(fù)制字符串的指針,所需空間有malloc()分配且可以有free()釋放。

  3) 內(nèi)存空間復(fù)制--memcpy

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

  函數(shù)說(shuō)明:src和dest 所指內(nèi)存區(qū)域不能重疊;由src所致內(nèi)存區(qū)域復(fù)制count個(gè)字節(jié)到dest所指內(nèi)存區(qū)域中。

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

  4、字符串連接

  1)接尾連接--strcat

  函數(shù)原型:char* strcat(char*dest,char*src)

  函數(shù)說(shuō)明:把src所指字符串添加到dest結(jié)尾處(覆蓋dest結(jié)尾處的'')并添加''

  2)部分連接--strncat

  函數(shù)原型:char* strncat(char*dest,char*src,int n);

  函數(shù)說(shuō)明:把src所指字符串的前n個(gè)字符添加到dest結(jié)尾處(覆蓋dest結(jié)尾處的’’)并添加’’’.

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

  5、從字符串中查找字符

  1)內(nèi)存區(qū)域找字符--memchr

  函數(shù)原型:void *memchr(void*buf,char ch,usigned count)

  函數(shù)說(shuō)明:從buf所指內(nèi)存區(qū)域的前count個(gè)字節(jié)查找字符ch,當(dāng)?shù)谝淮斡龅阶址鹀h時(shí)停止查找。

  返回值:如果找到了,返回指向字符ch的指針;否則返回NULL

  2)字串中找字符--strchr

  函數(shù)原型:char* strchr(char*src,char ch)

  函數(shù)說(shuō)明:查找字符串s中首次出現(xiàn)字符ch的位置

  返回值:返回首次出現(xiàn)c的位置的指針,如果s中不存在c則返回NULL

  3)搜所現(xiàn)字符--strcspn

  函數(shù)原型:int strcspn(char*src,char*find)

  函數(shù)說(shuō)明:在字符串src中搜尋find中所出現(xiàn)的字符

  返回值:返回第一個(gè)出現(xiàn)的字符在src中的下標(biāo)值,即src中出現(xiàn)而不在find中出現(xiàn)的字串的長(zhǎng)度。

  舉例:

  #include

  #include

  int main(){

  char *s="Golden Global View";

  char *r="new";

  int n;

  n=strcspn(s,r);

  printf("The first char both in s1 and s2 is: %c",s[n]);

  return 0;

  }

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

  4)匹配任一字符--strpbrk

  函數(shù)原型:char*strpbrk(char*s1,char*s2)

  函數(shù)說(shuō)明:在字符串S1中尋找字符串S2中任何一個(gè)字符相匹配的第一個(gè)字符的位置,空字符不包括在內(nèi)。

  返回值:返回指向S1中第一個(gè)相匹配的字符的指針,如果沒(méi)有匹配字符則返回空指針。

  舉例:

  #include

  #include

  int main(){

  char *s1="Welcome To Beijing";

  char *s2="BIT";

  char *p;

  p=strpbrk(s1,s2);

  if(p)

  printf("%sn",p);

  else printf("Not Found!n");

  return 0;

  }

  輸出:To Beijing

  6、其他函數(shù)

  1)全部轉(zhuǎn)成大寫---strupr

  函數(shù)原型:char*strupr(char*src)

  函數(shù)說(shuō)明:將字符串src轉(zhuǎn)換成大寫形式,只轉(zhuǎn)換src中出現(xiàn)的小寫字母,不改變其他字符

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

  2)全部轉(zhuǎn)成小寫---strlwr

  函數(shù)原型:char*strlwr(char*src)

  函數(shù)說(shuō)明:將字符串src轉(zhuǎn)換成小寫形式,只轉(zhuǎn)換src中出現(xiàn)的大寫字母,不改變其他字符

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

  3)將字串逆向--strrev

  函數(shù)原型:char*strrev(char*src)

  函數(shù)說(shuō)明:把字符串src的所有字符的順序顛倒過(guò)來(lái)(不包括NULL)

  返回值:返回指向顛倒順序后的字符串指針

1.《strdup C語(yǔ)言字符串處理的庫(kù)函數(shù)有哪些》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。

2.《strdup C語(yǔ)言字符串處理的庫(kù)函數(shù)有哪些》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/jiaoyu/76667.html