c語言字符串函數詳解
void *memset(void *dest, int c, size_t count);
將dest前面count個字符置為字符c.
返回dest的值.
void *memmove(void *dest, const void *src, size_t count);
從src復制count字節的字符到dest. 如果src和dest出現重疊, 函數會自動處理.
返回dest的值.
void *memcpy(void *dest, const void *src, size_t count);
從src復制count字節的字符到dest. 與memmove功能一樣, 只是不能處理src和dest出現重疊.
返回dest的值.
void *memchr(const void *buf, int c, size_t count);
在buf前面count字節中查找首次出現字符c的位置. 找到了字符c或者已經搜尋了count個字節, 查找即停止.
操作成功則返回buf中首次出現c的位置指針, 否則返回NULL.
void *_memccpy(void *dest, const void *src, int c, size_t count);
從src復制0個或多個字節的字符到dest. 當字符c被復制或者count個字符被復制時, 復制停止.
如果字符c被復制, 函數返回這個字符后面緊挨一個字符位置的指針. 否則返回NULL.
int memcmp(const void *buf1, const void *buf2, size_t count);
比較buf1和buf2前面count個字節大小.
返回值< 0, 表示buf1小於buf2;
返回值為0, 表示buf1等於buf2;
返回值> 0, 表示buf1大於buf2.
int memicmp(const void *buf1, const void *buf2, size_t count);
比較buf1和buf2前面count個字節. 與memcmp不同的是, 它不區分大小寫.
返回值同上.
size_t strlen(const char *string);
獲取字符串長度, 字符串結束符NULL不計算在內.
沒有返回值指示操作錯誤.
char *strrev(char *string);
將字符串string中的字符順序顛倒過來. NULL結束符位置不變.
返回調整后的字符串的指針.
char *_strupr(char *string);
將string中所有小寫字母替換成相應的大寫字母, 其它字符保持不變.
返回調整后的字符串的指針.
char *_strlwr(char *string);
將string中所有大寫字母替換成相應的小寫字母, 其它字符保持不變.
返回調整后的字符串的指針.
char *strchr(const char *string, int c);
查找字符c在字符串string中首次出現的位置, NULL結束符也包含在查找中.
返回一個指針, 指向字符c在字符串string中首次出現的位置, 如果沒有找到, 則返回NULL.
char *strrchr(const char *string, int c);
查找字符c在字符串string中最后一次出現的位置, 也就是對string進行反序搜索, 包含NULL結束符.
返回一個指針, 指向字符c在字符串string中最后一次出現的位置, 如果沒有找到, 則返回NULL.
char *strstr(const char *string, const char *strSearch);
在字符串string中查找strSearch子串.
返回子串strSearch在string中首次出現位置的指針. 如果沒有找到子串strSearch, 則返回NULL. 如果子串strSearch為空串, 函數返回string值.
char *strdup(const char *strSource);
函數運行中會自己調用malloc函數為復制strSource字符串分配存儲空間, 然后再將strSource復制到分配到的空間中. 注意要及時釋放這個分配的空間.
返回一個指針, 指向為復制字符串分配的空間; 如果分配空間失敗, 則返回NULL值.
char *strcat(char *strDestination, const char *strSource);
將源串strSource添加到目標串strDestination后面, 並在得到的新串后面加上NULL結束符. 源串strSource的字符會覆蓋目標串strDestination后面的結束符NULL. 在字符串的復制或添加過程中沒有溢出檢查, 所以要保證目標串空間足夠大. 不能處理源串與目標串重疊的情況.
函數返回strDestination值.
char *strncat(char *strDestination, const char *strSource, size_t count);
將源串strSource開始的count個字符添加到目標串strDest后. 源串strSource的字符會覆蓋目標串strDestination后面的結束符NULL. 如果count大於源串長度, 則會用源串的長度值替換count值. 得到的新串后面會自動加上NULL結束符. 與strcat函數一樣, 本函數不能處理源串與目標串重疊的情況.
函數返回strDestination值.
char *strcpy(char *strDestination, const char *strSource);
復制源串strSource到目標串strDestination所指定的位置, 包含NULL結束符. 不能處理源串與目標串重疊的情況.
函數返回strDestination值.
char *strncpy(char *strDestination, const char *strSource, size_t count);
將源串strSource開始的count個字符復制到目標串strDestination所指定的位置. 如果count值小於或等於strSource串的長度, 不會自動添加NULL結束符目標串中, 而count大於strSource串的長度時, 則將strSource用NULL結束符填充補齊count個字符, 復制到目標串中. 不能處理源串與目標串重疊的情況.
函數返回strDestination值.
char *strset(char *string, int c);
將string串的所有字符設置為字符c, 遇到NULL結束符停止.
函數返回內容調整后的string指針.
char *strnset(char *string, int c, size_t count);
將string串開始count個字符設置為字符c, 如果count值大於string串的長度, 將用string的長度替換count值.
函數返回內容調整后的string指針.
size_t strspn(const char *string, const char *strCharSet);
查找任何一個不包含在strCharSet串中的字符 (字符串結束符NULL除外) 在string串中首次出現的位置序號.
返回一個整數值, 指定在string中全部由characters中的字符組成的子串的長度. 如果string以一個不包含在strCharSet中的字符開頭, 函數將返回0值.
size_t strcspn(const char *string, const char *strCharSet);
查找strCharSet串中任何一個字符在string串中首次出現的位置序號, 包含字符串結束符NULL.
返回一個整數值, 指定在string中全部由非characters中的字符組成的子串的長度. 如果string以一個包含在strCharSet中的字符開頭, 函數將返回0值.
char *strspnp(const char *string, const char *strCharSet);
查找任何一個不包含在strCharSet串中的字符 (字符串結束符NULL除外) 在string串中首次出現的位置指針.
返回一個指針, 指向非strCharSet中的字符在string中首次出現的位置.
char *strpbrk(const char *string, const char *strCharSet);
查找strCharSet串中任何一個字符在string串中首次出現的位置, 不包含字符串結束符NULL.
返回一個指針, 指向strCharSet中任一字符在string中首次出現的位置. 如果兩個字符串參數不含相同字符, 則返回NULL值.
int strcmp(const char *string1, const char *string2);
比較字符串string1和string2大小.
返回值< 0, 表示string1小於string2;
返回值為0, 表示string1等於string2;
返回值> 0, 表示string1大於string2.
int stricmp(const char *string1, const char *string2);
比較字符串string1和string2大小,和strcmp不同, 比較的是它們的小寫字母版本.
返回值與strcmp相同.
int strcmpi(const char *string1, const char *string2);
等價於stricmp函數, 只是提供一個向后兼容的版本.
int strncmp(const char *string1, const char *string2, size_t count);
比較字符串string1和string2大小,只比較前面count個字符. 比較過程中, 任何一個字符串的長度小於count, 則count將被較短的字符串的長度取代. 此時如果兩串前面的字符都相等, 則較短的串要小.
返回值< 0, 表示string1的子串小於string2的子串;
返回值為0, 表示string1的子串等於string2的子串;
返回值> 0, 表示string1的子串大於string2的子串.
int strnicmp(const char *string1, const char *string2, size_t count);
比較字符串string1和string2大小,只比較前面count個字符. 與strncmp不同的是, 比較的是它們的小寫字母版本.
返回值與strncmp相同.
char *strtok(char *strToken, const char *strDelimit);
在strToken 串中查找下一個標記, strDelimit字符集則指定了在當前查找調用中可能遇到的分界符.
返回一個指針, 指向在strToken中找到的下一個標記. 如果找不到標記, 就返回NULL值. 每次調用都會修改strToken內容, 用NULL字符替換遇到的每個分界符.
