strpbrk
strpbrk會周遊字元串s1的每一個字元,如果目前字元s2裡面也有目前周遊到的這個字元,那就馬上傳回目前字元的指針。
比如:
char s1[] = "GET http://www.baidu.com http1.1\r\n";
char* ret = strpbrk(s1, " \t");
此時指針ret指向GET後面的那個空格,因為周遊到那個空格發現strpbrk的第二個參數裡面也有一個空格,是以此時馬上傳回。
strspn
此函數與strpbrk剛好相反,它會周遊字元串s1的每一個字元,如果目前字元s2裡面沒有目前周遊到的字元,那就馬上傳回目前字元的下标。
比如:
char s1[] = "GET http://www.baidu.com http1.1\r\n";
size_t ret = strspn(s1, "GE"); // 輸出2
這個時候周遊到第三個字元T的時候,發現s2裡面沒有,立即傳回T的下标2.
還有一個strcspn函數,是strspn的雙胞胎,二者長得幾乎一樣然而功能完全相反。即:
周遊字元串s1的每一個字元,如果目前字元s2裡面有目前周遊到的字元,那就馬上傳回目前字元的下标
strchr
strchr和strpbrk功能一樣,周遊s,遇到值為c的字元就傳回。
而strrchr就是從後往前周遊s,遇到值為c的字元傳回。