我一直在Internet上以及每个具有string.h功能的地方都在寻找它,而这两个都没有提到。

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

最佳答案

它们是Microsoft C库中的非标准函数。从那以后,MS已弃用它们,而支持重命名的函数_strlwr()_strupr():

  • strlwr() doc
  • strupr() doc

  • 请注意,MS文档声称它们是POSIX函数,但据我所知它们从未如此。
    如果您需要在非MS工具链上使用它们,那么它们很容易实现。
    char* strlwr(char* s)
    {
        char* tmp = s;
    
        for (;*tmp;++tmp) {
            *tmp = tolower((unsigned char) *tmp);
        }
    
        return s;
    }
    

    关于c - string.h中的strupr()和strlwr()是ANSI标准的一部分吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26327812/

    10-10 12:44