我注意到了Linux和Windows之间的差异。在Windows的C标准库实现中,有一个叫做strcmpi的函数,但在GNU的C标准库实现中却没有。请问,C标准库中的strcmpi函数是否被ISO定义过?如何获取标准文件呢?谢谢。
我注意到了Linux和Windows之间的差异。在Windows的C标准库实现中,有一个叫做strcmpi的函数,但在GNU的C标准库实现中却没有。请问,C标准库中的strcmpi函数是否被ISO定义过?如何获取标准文件呢?谢谢。
POSIX标准(也称为UNIX)有 strcasecmp()
但它不是C99 / ISO-C的一部分。
注意:如果您将上述引用与例如 strcmp()
的引用进行比较,您会注意到后者明确引用了ISO-C,而前者没有。这是 OpenGroup 引用的一个有用特性。
编辑:由于语言环境依赖性被提及为一种复杂情况,请参见上面的 strcasecmp_l()
的参考文献,该函数允许显式地指定用于转换的语言环境。Windows也有专门用于此目的的_strcmpi_l()
,同样遵循其自己的命名约定。
不是的,这是一个非标准扩展。类Unix系统通常有一个strcasecmp
函数,它执行与MS的strcmpi
相同的任务。
不是的,在标准中快速使用 CTRL+F 搜索 strcmpi
并没有返回任何结果。这意味着它是一种非标准扩展(Windows 和 GNU 都有很多这样的扩展)。