65.9K
CodeProject 正在变化。 阅读更多。
Home

类似 CStringT 的 STL 字符串类

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.63/5 (11投票s)

2006 年 4 月 18 日

CPOL

1分钟阅读

viewsIcon

44660

downloadIcon

439

一个基于 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 的地方使用它。

© . All rights reserved.