繼上一篇:『[C/C++] 切割字串函數:strtok, Network mac address 分割』,內容寫到 Microsoft 用到 strpbrk 來找尋字串中特定符號,並且回傳該符號的位址,用法如下:
|
|
我們看一下 /usr/src/lib/libc/string/strpbrk.c
原始碼:
|
|
首先將指定字串(str),跟愈找尋的字串(key)方別帶入 s1, s2,當跑 while 迴圈時,會先去判斷是否到了字串最後一個字元,判斷是否為 NULL,如果不是,則進入 while 迴圈,在利用 for 迴圈去比對字串 key,其實都是利用 ASCII 轉換比對是否相同,如果相同,則回傳該指定字母之位址,回傳時還需要 s1 -1 呢?因為在 while 條件中已經將字串指到下一個字母位址,所以必需要在重新指回去前一字母。
See also
- [Linux Kernel] 讀取 /proc 底下資料最佳方法: seq_file interface
- [C/C++] 判斷檔案是否存在 file_exists
- [C/C++] 將字串轉成 16 進位
- [C/C++] cstring (string.h) 函式:strcat, strncat, strcmp, strncmp
- [C/C++] cstring (string.h) 搜尋函式:strstr, strchr
- [網站] 好站連結 (七) Android, javascript, Css, PHP, Perl, FreeBSD, Linux
- [C/C++] count 1 bits of input value by shifting.
- [C/C++] C語言切割字串函式 strsep,分析 URL GET 參數
- [C/C++] 切割字串函數:strtok, Network mac address 分割
- [C/C++] 計算二進位任意數含有多少個位元為1?