C++:字符串函数
C++: String Functions
我对编程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(;
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何从void函数输出字符串
- 使用用户定义函数的字符串反转
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- 在c++构造函数中使用随机字符串生成器
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- C++:如何使函数只返回作为列表一部分的字符串
- 如何在C++中的同一函数中使用字符串和双精度
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 一个函数,用于查找字符串1包含字符串2 c++的次数
- 对函数 PlaySound 使用字符串变量
- 具有多个模板的模板函数,用于特定数据类型(如字符串)?
- 字符串化递归的"std::vector<std::vector<...>>"而不使用部分模板函数专用化
- Visual c ++,使用字符串引用/指针调用 dll 函数
- 构造函数字符串参数未设置窗口标题
- C++默认构造函数:字符串参数与字符串参数()
- 使用函数C++字符串输入
- c++模板函数字符串类型不匹配