c語言字串庫函式 include

2022-05-10 10:20:07 字數 3813 閱讀 9480

字串函式

在標頭檔案中定義了兩組字串函式。第一組函式的名字以str開頭;第二組函式的名字以mem開頭。只有函式memmove對重疊物件間的拷貝進行了定義,而其他函式都未定義。比較類函式將其變數視為unsigned char型別的陣列。

1 strcpy

#include

char *strcpy(char *str1, const char *str2);

把字串str2(包括'\0')拷貝到字串str1當中,並返回str1。

2 strncpy

#include

char *strncpy(char *str1, const char *str2, size_t count);

把字串str2中最多count個字元拷貝到字串str1中,並返回str1。如果str2中少於count個字元,那麼就用'\0'來填充,直到滿足count個字元為止。

3 strcat

#include

char *strcat(char *str1, const char *str2);

把str2(包括'\0')拷貝到str1的尾部(連線),並返回str1。其中終止原str1的'\0'被str2的第乙個字元覆蓋。

4 strncat

#include

char *strncat(char *str1, const char *str2, size_t count);

把str2中最多count個字元連線到str1的尾部,並以'\0'終止str1,返回str1。其中終止原str1的'\0'被str2的第乙個字元覆蓋。

注意,最大拷貝字元數是count+1。

5 strcmp

#include

int strcmp(const char *str1, const char *str2);

按字典順序比較兩個字串,返回整數值的意義如下:

6 strncmp

#include

int strncmp(const char *str1, const char *str2, size_t count);

同strcmp,除了最多比較count個字元。根據比較結果返回的整數值如下:

7 strchr

#include

char *strchr(const char *str, int ch);

返回指向字串str中字元ch第一次出現的位置的指標,如果str中不包含ch,則返回null。

8 strrchr

#include

char *strrchr(const char *str, int ch);

返回指向字串str中字元ch最後一次出現的位置的指標,如果str中不包含ch,則返回null。

9 strspn

#include

size_t strspn(const char *str1, const char *str2);

返回字串str1中由字串str2中字元構成的第乙個子串的長度。

10 strcspn

#include

size_t strcspn(const char *str1, const char *str2);

返回字串str1中由不在字串str2中字元構成的第乙個子串的長度。

11 strpbrk

#include

char *strpbrk(const char *str1, const char *str2);

返回指向字串str2中的任意字元第一次出現在字串str1中的位置的指標;如果str1中沒有與str2相同的字元,那麼返回null。

12 strstr

#include

char *strstr(const char *str1, const char *str2);

返回指向字串str2第一次出現在字串str1中的位置的指標;如果str1中不包含str2,則返回null。

13 strlen

#include

size_t strlen(const char *str);

返回字串str的長度,'\0'不算在內。

14 strerror

#include

char *strerror(int errnum);

返回指向與錯誤序號errnum對應的錯誤資訊字串的指標(錯誤資訊的具體內容依賴於實現)。

15 strtok

#include

char *strtok(char *str1, const char *str2);

在str1中搜尋由str2中的分界符界定的單詞。

對strtok()的一系列呼叫將把字串str1分成許多單詞,這些單詞以str2中的字元為分界符。第一次呼叫時str1非空,它搜尋str1,找出由非str2中的字元組成的第乙個單詞,將str1中的下乙個字元替換為'\0',並返回指向單詞的指標。隨後的每次strtok()呼叫(引數str1用null代替),均從前一次結束的位置之後開始,返回下乙個由非str2中的字元組成的單詞。當str1中沒有這樣的單詞時返回null。每次呼叫時字串str2可以不同。

如:char *p;

p = strtok("the summer soldier,the sunshine patriot", " ");

printf("%s", p);

do while (p);

顯示結果是:the | summer | soldier | the | sunshine | patriot

16 memcpy

#include

void *memcpy(void *to, const void *from, size_t count);

把from中的count個字元拷貝到to中。並返回to。

17 memmove

#include

void *memmove(void *to, const void *from, size_t count);

功能與memcpy類似,不同之處在於,當發生物件重疊時,函式仍能正確執行。

18 memcmp

#include

int memcmp(const void *buf1, const void *buf2, size_t count);

比較buf1和buf2的前count個字元,返回值與strcmp的返回值相同。

19 memchr

#include

void *memchr(const void *buffer, int ch, size_t count);

返回指向ch在buffer中第一次出現的位置指標,如果在buffer的前count個字元當中找不到匹配,則返回null。

20 memset

#include

void *memset(void *buf, int ch, size_t count);

把buf中的前count個字元替換為ch,並返回buf。

C語言 字串庫函式實現

對於字串,編譯器為我們提供了一些庫函式以方便我們對其的操作,下面我們將對一些常用的字串庫函式進行簡單介紹,並自我實現這些方法。1 strcopy 函式原型 char strcpy char dest,const char src 說明 src和dest所指記憶體區域不可以重疊且dest必須有足夠的空...

C語言的字串常用庫函式

strcpy str1,str2 將字串str2複製到str1中,這個庫函式不會檢查str1的容量是否足夠長度。strncpy str1,str2,size t 將字串str2從頭開始複製size t個字元到str1中,這個庫函式會檢查str1的容量是否足夠長度。memset str,0 5 將st...

C語言字串操作常用庫函式

函式名 strrchr 功 能 在串中查詢指定字元的最後乙個出現 用 法 char strrchr char str,char c 舉例 char fullname lib lib1.so char ptr ptr strrchr fullname,printf filename is s ptr ...