Linux下没有现成的 不区分大小写的strstr函数,但是有 strncasecmp 函数,用于不区分大小写的字符串比较,利用它,我们可以很简单地实现不区分大小写的strstr函数
strncasecmp 函数原型: int strncasecmp(const char *s1, const char *s2, size_t n); strncasecmp 比较 s1 和 s2 的前 n 个字符,不区分大小写,返回值如下: 负整数: 如果 s1 < s2 0: 如果 s1 == s2 正整数: 如果 s1 > s2 我们的 不区分大小写的strstr函数 实现如下: #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; } |
|