Wcsstr不区分大小写

有谁知道如何使用wcsstr在C上不区分大小写? 如果这个重要,我将在内核驱动程序中使用它。

如果你在Windows下编程,你可以使用StrStrI()函数。

你不能在内核驱动中使用它,所以你必须自己写 。 在那个例子中,使用了toupper() ,应该用RtlUpcaseUnicodeChar (由Rup指出)替换。 总结一下你需要这样的东西:

 char *stristr(const wchar_t *String, const wchar_t *Pattern) { wchar_t *pptr, *sptr, *start; for (start = (wchar_t *)String; *start != NUL; ++start) { while (((*start!=NUL) && (RtlUpcaseUnicodeChar(*start) != RtlUpcaseUnicodeChar(*Pattern)))) { ++start; } if (NUL == *start) return NULL; pptr = (wchar_t *)Pattern; sptr = (wchar_t *)start; while (RtlUpcaseUnicodeChar(*sptr) == RtlUpcaseUnicodeChar(*pptr)) { sptr++; pptr++; if (NUL == *pptr) return (start); } } return NULL; }