C++:字符串函数

C++: String Functions

本文关键字:函数 字符串 C++      更新时间:2023-10-16

我对编程C++很陌生,正在通过阅读书籍来了解基础知识。我遇到了两个有趣的功能strcmpi()stricmp()。我知道这两个函数都通过忽略字符串的大小写来按字典顺序比较字符串。所以我只是想知道它们之间的区别。

任何帮助将不胜感激。

这两个函数做完全相同的事情(只要你坚持比较普通的ASCII字符串(。

问题是,两者都不是 ANSI C 标准的一部分,因此您无法确定其中任何一个都可用于给定的编译器。

对于相同的功能,您可以有其他名称。 _strcmpi()例如。

C/C++ 中没有标准的不区分大小写的比较原语,因此每个编译器都提供自己的版本,但名称不同。

最好的"标准"变体是 ISO C++ _stricmp ,但我不会打赌地球上的每个编译器目前都支持它。

其背后的原因是区分大小写并不像看起来那么微不足道,各种语言的所有变音符号和扩展字符编码也是如此。

虽然纯 ASCII 字符串将始终以相同的方式进行比较,但在尝试比较 UTF16 字符串或其他扩展字符集时,您可能会遇到实现差异。

从这篇文章来看,一些C++极客似乎也对重写自己的版本大加赞赏。

strcmpi 和 stricmp 是不区分大小写的 strcmp 版本。它们在所有其他方面的工作方式相同。_strcmpi 和 _stricmp 是 strcmpi 和 stricmp 的替代名称。strcasecmp 是 strcmpi 的别名。

int strcmp (const char *string1, const char *string2(;

int strcmpi (const char *string1, const char *string2(;

int stricmp (const char *string1, const char *string2(;