C語言字符串處理庫函數大全(轉)


一、string.h中字符串處理函數

在頭文件<string.h>中定義了兩組字符串函數。第一組函數的名字以str開頭;第二組函數的名字以mem開頭。
只有函數memmove對重疊對象間的拷貝進行了定義,而其他函數都未定義。比較類函數將其變量視為unsigned char類型的數組。

1 strcpy

char *strcpy(char *str1, const char *str2);
把字符串str2(包括'\0')拷貝到字符串str1當中,並返回str1。

2 strncpy

char *strncpy(char *str1, const char *str2, size_t count);
把字符串str2中最多count個字符拷貝到字符串str1中,並返回str1。如果str2中少於count個字符,那么就用'\0'來填充,直到滿足count個字符為止。

3 strcat

char *strcat(char *str1, const char *str2);
把str2(包括'\0')拷貝到str1的尾部(連接),並返回str1。其中終止原str1的'\0'被str2的第一個字符覆蓋。

4 strncat

char *strncat(char *str1, const char *str2, size_t count);
把str2中最多count個字符連接到str1的尾部,並以'\0'終止str1,返回str1。其中終止原str1的'\0'被str2的第一個字符覆蓋。
注意,最大拷貝字符數是count+1。

5 strcmp

int strcmp(const char *str1, const char *str2);
按字典順序比較兩個字符串,返回整數值的意義如下:
小於0,str1小於str2;
等於0,str1等於str2;
大於0,str1大於str2;

6 strncmp

int strncmp(const char *str1, const char *str2, size_t count);
同strcmp,除了最多比較count個字符。根據比較結果返回的整數值如下:
小於0,str1小於str2;
等於0,str1等於str2;
大於0,str1大於str2;

7 strchr

char *strchr(const char *str, int ch);
返回指向字符串str中字符ch第一次出現的位置的指針,如果str中不包含ch,則返回NULL。

8 strrchr

char *strrchr(const char *str, int ch);
返回指向字符串str中字符ch最后一次出現的位置的指針,如果str中不包含ch,則返回NULL。

9 strspn

size_t strspn(const char *str1, const char *str2);
返回字符串str1中由字符串str2中字符構成的第一個子串的長度。

10 strcspn

size_t strcspn(const char *str1, const char *str2);
返回字符串str1中由不在字符串str2中字符構成的第一個子串的長度。

11 strpbrk

char *strpbrk(const char *str1, const char *str2);
返回指向字符串str2中的任意字符第一次出現在字符串str1中的位置的指針;如果str1中沒有與str2相同的字符,那么返回NULL。

12 strstr

char *strstr(const char *str1, const char *str2);
返回指向字符串str2第一次出現在字符串str1中的位置的指針;如果str1中不包含str2,則返回NULL。

13 strlen

size_t strlen(const char *str);
返回字符串str的長度,'\0'不算在內。

14 strerror

char *strerror(int errnum);
返回指向與錯誤序號errnum對應的錯誤信息字符串的指針(錯誤信息的具體內容依賴於實現)。

15 strtok

char *strtok(char *str1, const char *str2);
在str1中搜索由str2中的分界符界定的單詞。
對strtok()的一系列調用將把字符串str1分成許多單詞,這些單詞以str2中的字符為分界符。第一次調用時str1非空,它搜索str1,找出由非str2中的字符組成的第一個單詞,將str1中的下一個字符替換為'\0',並返回指向單詞的指針。隨后的每次strtok()調用(參數str1用NULL代替),均從前一次結束的位置之后開始,返回下一個由非str2中的字符組成的單詞。當str1中沒有這樣的單詞時返回NULL。每次調用時字符串str2可以不同。

 

16 memcpy

void *memcpy(void *to, const void *from, size_t count);
把from中的count個字符拷貝到to中。並返回to。

17 memmove

void *memmove(void *to, const void *from, size_t count);
功能與memcpy類似,不同之處在於,當發生對象重疊時,函數仍能正確執行。

18 memcmp

int memcmp(const void *buf1, const void *buf2, size_t count);
比較buf1和buf2的前count個字符,返回值與strcmp的返回值相同。

19 memchr

void *memchr(const void *buffer, int ch, size_t count);
返回指向ch在buffer中第一次出現的位置指針,如果在buffer的前count個字符當中找不到匹配,則返回NULL。

20 memset

void *memset(void *buf, int ch, size_t count);
把buf中的前count個字符替換為ch,並返回buf。

 

二、stdlib.h中字符串與數字相互轉換處理函數

1. 數字轉化為字符串:

● itoa():將整型值轉換為字符串。
● ltoa():將長整型值轉換為字符串。
● ultoa():將無符號長整型值轉換為字符串。
● gcvt():將浮點型數轉換為字符串,取四舍五入。
● ecvt():將雙精度浮點型值轉換為字符串,轉換結果中不包含十進制小數點。
● fcvt():指定位數為轉換精度,其余同ecvt()。


2. 字符串轉化為數字

● atof():將字符串轉換為雙精度浮點型值。
● atoi():將字符串轉換為整型值。
● atol():將字符串轉換為長整型值。
● strtod():將字符串轉換為雙精度浮點型值,並報告不能被轉換的所有剩余數字。
● strtol():將字符串轉換為長整值,並報告不能被轉換的所有剩余數字。
● strtoul():將字符串轉換為無符號長整型值,並報告不能被轉換的所有剩余數字。




轉自:https://www.jianshu.com/p/28773877ffba






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM