我在互联网上寻找这个,在每个地方都有 string.h 的功能,没有提到这两个。
是因为什么?它们不在每个编译器中?
它们是 Microsoft 的 C 库中的非标准函数。此后,MS 弃用了它们,转而支持重命名的函数_strlwr()
,并且_strupr()
:
请注意,MS 文档声称它们是 POSIX 函数,但据我所知,它们从未如此。
如果您需要在非 MS 工具链上使用它们,它们很容易实现。
char* strlwr(char* s)
{
char* tmp = s;
for (;*tmp;++tmp) {
*tmp = tolower((unsigned char) *tmp);
}
return s;
}
这些函数不是 C 标准函数。因此,是否支持它们是实现定义的。
这些功能不是标准的,实际上它们的签名已损坏/不可用。通常,您不能就地对字符串进行大小写映射,因为在大小写映射下长度可能会发生变化。