Linux下沒有現(xiàn)成的 不區(qū)分大小寫的strstr函數(shù),但是有 strncasecmp 函數(shù),用于不區(qū)分大小寫的字符串比較,利用它,我們可以很簡單地實現(xiàn)不區(qū)分大小寫的strstr函數(shù)
strncasecmp 函數(shù)原型: int strncasecmp(const char *s1, const char *s2, size_t n); strncasecmp 比較 s1 和 s2 的前 n 個字符,不區(qū)分大小寫,返回值如下: 負整數(shù): 如果 s1 < s2 0: 如果 s1 == s2 正整數(shù): 如果 s1 > s2 我們的 不區(qū)分大小寫的strstr函數(shù) 實現(xiàn)如下: #include <strings.h> const char* strstri(const char* str, const char* subStr) { int len = strlen(subStr); if(len == 0) { return NULL; } while(*str) { if(strncasecmp(str, subStr, len) == 0) { return str; } ++str; } return NULL; } |
|