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
版權聲明:本文爲博主原創文章,轉載請附上博文連接!spa