为什么有多个C函数用于不区分大小写的比较

use*_*825 3 c string posix crt msvcrt

为了比较任何字符串而不考虑它们的情况,有各种C库函数,如strcasecmp(),stricmp()stricmpi().这些有什么区别?

Wil*_*ell 7

有很多方法可以做很多事情,主要是因为标准流程落后于实现.人们看到需要一个函数(在这种情况下,不区分大小写的字符串比较)和一些编译器编写器/库编写器实现一个被调用的函数strcmpi,而另一个组实现stricmp,而另一个组决定它没有必要实现它,而另一个组实现strcasecmp而另一个团体实施strcmpnocase,等等.多年后,来自不同团体的代表在致命的战斗中相遇,获胜者的实施成为语言的一部分.同时,其他实现继续使用其他命名方法,语言变得更强/片段/收益膨胀(取决于您的观点).


pmg*_*pmg 6

C99标准(POSIX.1-2008)均未描述stricmp()strcmpi()描述.

以不区分大小写的方式比较字符串的标准方法是在使用之前将两者转换为小写(或大写)strcmp().

POSIX功能是strcasecmp().