日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C语言字符串处理的库函数

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言字符串处理的库函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

使用C語言字符串處理的庫函數,務必包含頭文件string.h,即#include <string.h>

????? 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 <string.h>

??? #include <stdio.h>

??? int main(){

??????? char *s="Golden Global View";

??????? char *d=" ";

??????? char *p;

???????? p=strtok(s,d);

??????? while(p){

????????? printf("%s\n",p);

????????? strtok(NULL,d);

??????? }

??????? 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 <string.h>

#include <stdio.h>

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

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

函數說明:在字符串S1中尋找字符串S2中任何一個字符相匹配的第一個字符的位置,空字符不包括在內。

返回值:返回指向S1中第一個相匹配的字符的指針,如果沒有匹配字符則返回空指針。

舉例:

#include <stdio.h>

#include <string.h>

int main(){

??? char *s1="Welcome To Beijing";

??? char *s2="BIT";

??? char *p;

??? p=strpbrk(s1,s2);

??? if(p)

??????? printf("%s\n",p);

??? else printf("Not Found!\n");

??? return 0;

}

輸出: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语言字符串处理的库函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。