7

我在互联网上寻找这个,在每个地方都有 string.h 的功能,没有提到这两个。

是因为什么?它们不在每个编译器中?

4

3 回答 3

14

它们是 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;
}
于 2014-10-12T17:43:23.563 回答
4

这些函数不是 C 标准函数。因此,是否支持它们是实现定义的。

于 2014-10-12T17:17:58.483 回答
1

这些功能不是标准的,实际上它们的签名已损坏/不可用。通常,您不能就地对字符串进行大小写映射,因为在大小写映射下长度可能会发生变化。

于 2014-10-12T17:47:10.743 回答