在MSVC++中,有一个用于不区分大小写的C字符串比较的函数strcmpi。
当您尝试使用它时,会出现以下信息:
当您尝试使用它时,会出现以下信息:
自Visual C++ 2005起,此POSIX函数已过时。请改用符合ISO C++标准的_stricmp。我不明白的是,为什么ISO不希望MSVC++使用strcmpi,为什么_stricmp是首选方式,他们为什么要重命名该函数,以及一个以下划线开头的函数如何符合ISO标准。我知道这一定有原因,我怀疑是因为strcmpi是非标准的,也许ISO希望非标准扩展以_下划线开头?
<string.h>
】(http://port70.net/~nsz/c/c11/n1570.html#7.31.13)指定:在<string.h>
头文件的声明中,以str
、mem
或wcs
开头且后跟小写字母的函数名称可以添加。这意味着str_lower()
和strUpper()
等名称不受 C 标准保留,但strequal()
是受保留的。 - Jonathan Leffler