1 strchr
函數原型:extern char *strchr(char *str,char character)
參數說明:str為一個字符串的指針,character為一個待查找字符。
所在庫名:#include <string.h>
函數功能:從字符串str中尋找字符character第一次出現的位置。
返回說明:返回指向第一次出現字符character位置的指針,如果沒找到則返回NULL。
2 strstr函數
函數功能:在一個字符串中查找一個字串
函數原型:char *strstr(char const *s1,char const *s2);
函數說明:strstr實現在s1中查找整個s2第一次出現的位置,不包括str2的串結束符, 並返回一個指向該位置的指針。如果s2並沒有完整的出現在s1的任何地方,函數返回一個NULL指針。如果第二個字符串是一個空字符串,函數返回s1。
兩個函數的區別是,strchr是在字符串中查找單個字符,可以是'\n'換行符(驗證過),strstr是在s1中查找出現s2的位置,在字符串中查找另外一個字符串出現的位置。
3 strcat函數
原型: char *strcat(char *dest,char *src)
參數說明:dest為一個目的字符串的指針,即被連接的字符串(在前),src為一個源字符串的指針(在后)。
所在庫名:#include <string.h>
函數功能:把src所指字符串添加到dest結尾處實現字符串的連接,連接過程覆蓋dest結尾處的'/0'。
返回說明:src和dest所指內存區域不可以重疊,並且dest必須有足夠的空間來容納src的字符串返回指向dest的指針
4 strncat 函數
函數原型:extern char *strncat(char *dest,char *src,int n)
參數說明:src為源字符串,dest為目的字符串,n為指定的src中的前n個字符。
所在庫名:#include <string.h>
函數功能:把src所指字符串的前n個字符添加到dest結尾處,覆蓋dest結尾處的'/0',實現字符串連接。
返回說明:返回指針,連接后的字符串。
5 strlen函數
函數:size_t strlen(const char *s);
功能:strlen()用來計算指定的字符串s的長度,不包括結束字符"\0"。
頭文件:#include <string.h>
返回值:返回字符串s的字符數。
6 strcmp函數
函數:int strcmp(const char *s1, const char *s2);
功能:strcmp()用來比較參數s1和s2字符串。字符串大小的比較是以ASCII 碼表上的順序來決定,此順序亦為字符的值。strcmp()首先將s1第一個字符值減去s2第一個字符值,若差值為0則再繼續比較下個字符,若差值不為0則將差值返回。例如字符串"Ac"和"ba"比較則會返回字符"A"(65)和'b'(98)的差值(-33)。
頭文件:#include <string.h>
返回值:若參數s1和s2字符串相同則返回0。s1若大於s2則返回大於0的值。s1若小於s2則返回小於0 的值。
7 strcpy函數
函數:char *strcpy(char *dest, const char *src);
功能:strcpy()會將參數src字符串拷貝至參數dest所指的地址。
頭文件:#include <string.h>
返回值:返回參數dest的字符串起始地址。如果參數dest所指的內存空間不夠大,可能會造成緩沖溢出(buffer Overflow)的錯誤情況,在編寫程序時請特別留意,或者用 strncpy() 來取代。
8 strncpy函數
函數: char * strncpy(char *dest, const char *src, size_t n);
功能:復制字符串src中的內容(字符,數字、漢字....)到字符串dest中,復制多少由n的值決定。如果src的前n個字符不含NULL字符,則結果不會以NULL字符結束。如果n<src的長度,只是將src的前n個字符復制到dest的前n個字符,不自動添加'\0',也就是結果dest不包括'\0',需要再手動添加一個'\0'。如果src的長度小於n個字節,則以NULL填充dest直到復制完n個字節。src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符長度+'\0'
頭文件:#include <string.h>
【參數說明】dest 為目標字符串指針,src 為源字符串指針。strncpy()會將字符串src前n個字符拷貝到字符串dest。src 和 dest 所指的內存區域不能重疊,且 dest 必須有足夠的空間放置n個字符。
不像strcpy(),strncpy()不會向dest追加結束標記'\0',所以在strncpy()后使用strcat()因找不到‘\0’會有問題;
若想strncpy()在結尾添加"\0"則需n大於src字符串長度
9 strpbrk函數
函數:char *strpbrk(const char *str, const char *group);
功能:依次檢驗字符串str中的字符,當被檢驗字符在字符串group中也包含時,則停止檢驗,並返回該字 符位置,空字符NULL不包括在內。
頭文件:#include <string.h>
返回值:返回str中第一個滿足條件的字符的指針,如果沒有匹配字符則返回空指針NULL
10 strtok函數
函數:char *strtok(char *s, const char *delim);
功能:分解字符串為一組字符串。s為要分解的字符串,delim為分隔符字符串, strtok()用來將字符串分割成一個個片段。參數s指向欲分割的字符串,參數delim則為分割字符串,當strtok()在參數s的字符串中發現到參數delim的分割字符時則會將該字符改為\0 字符。在第一次調用時,strtok()必需給予參數s字符串,往后的調用則將參數s設置成NULL。每次調用成功則返回被分割出片段的指針。
頭文件:#include <string.h>
返回值 : 從s開頭開始的一個個被分割的串。當沒有被分割的串時則返回NULL。所有delim中包含的字符都會被濾掉,並將被濾掉的地方設為一處分割的節點
舉例:
使用第二個參數ct中的分隔符字符串,分割第一個參數s,ct參數的分隔符可以是任意字符,可以是單個字符的分隔符,也可以是字符串形式的分隔符如:"!,;'/"等,都可以作為分隔符。例如:
s="abc,def,123;456!/aaa"
ct=",;!/"
s將被分割為為:abc def 123 456 aaa
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char s[] = "abc,def,123;456!/aaa"; char delim[] = " ,;!/"; char *p = NULL; for(p = strtok(s, delim); p != NULL; p = strtok(NULL, delim)) { printf("%s ", p); } printf("\n"); return 0; }
gcc strtok.c -o strtok
$ ./strtok
abc def 123 456 aaa
---------------------
作者:xiaoyao1004
來源:CSDN
原文:https://blog.csdn.net/xiaoyao1004/article/details/83863344
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!