类似 CStringT 的 STL 字符串类
一个基于 STL 的字符串类,可以像 MFC 中的 CStringT 一样使用。
引言
在 STL 库中,有一个名为 std::string
的类,它可以在无需额外代码的情况下完成许多出色的额外工作。但是,它的方法中没有像 MFC 那样的 Format()
方法,所以我开始编写一个可以执行此操作的类:job:String
。
String
类可以像在 MFC 中调用 Format()
方法一样格式化字符串,但我们实际上不需要 MFC。因此,我们可以直接使用 String
代替 CStringT
。该类提供了以下成员函数:
- 运算符 (
=
,+
,+=
,CHAR()
,c_str()
,!=
,==
,<=
,>=
,<
,>
,[]
) ToLower()
,ToUpper()
Mid()
,Left()
,Right()
Compare()
,CompareNoCase()
Reverse()
,Replace()
,Remove()
,Insert()
,Delete()
,Empty()
TrimLeft()
,TrimRight()
Find()
,FindOneOf()
,ReverseFind()
Format()
GetBuffer()
,GetBufferSetLength()
,ReleaseBuffer()
,GetLength()
IsEmpty()
GetAt()
,SetAt()
如何使用这个类
以下示例演示了如何使用这个类
#include <string>
#include "string.hpp"
String s1;
s1 = "abc";
s1 += std::string("123") + "123";
String s2 = s1.Reverse();
s2.Format("%d,this,%c",123,'c');
char* ptr_data = s2.CHAR();
...
缺少代码
我没有在这个类中添加一些与平台相关的函数,因为我希望将其用作一个平台无关的类。以下列表显示了 MFC 的 CStringT
中使用过但未包含在 String
类中的成员函数:
AllocSysString()
SetSysString()
LoadString()
AnsiToOem()
OemToAnsi()
结论
这篇文章只是展示了我编写的代码的一小部分用法。您可以在任何使用 MFC 中 CStringT
的地方使用它。