afString.h
上传用户:kaiguan
上传日期:2007-10-28
资源大小:1074k
文件大小:4k
源码类别:

其他游戏

开发平台:

Visual C++

  1. // afString.h: interface for the afString class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #ifndef AF_STRING
  5. #define AF_STRING
  6. #pragma once
  7. #include <string.h>
  8. #include <assert.h>
  9. class afString  
  10. {
  11. public:
  12. /// Creates an empty string
  13. afString(){ string = NULL;};
  14. /// Creates a string as a copy of another pgString object
  15. afString(const afString& other);
  16. /// Creates a string as a copy of a char pointer
  17. afString(const char *nString);
  18. ~afString();
  19. /// Formats the given string and stores it.
  20. afString&
  21. set(const char *nString,...);
  22. /// Formats the given string and adds it.
  23.  afString&
  24. cat(const char *nString);
  25. /// Sets a new buffer directly
  26. /**
  27.  *  CAUTION: the pgString object takes the ownership of the buffer; so do not delete it.
  28.  */
  29. void setBuffer(char* nBuffer);
  30. /// Returns the length of the string.
  31. int length() const;
  32. /// Returns the length of the string.
  33. int getLength() const  {  return length();  }
  34. /// Does the string consists just the chars of the cSet??
  35. /**
  36.  *  If the string only contains the characters in cSet
  37.  *  true is returned.
  38.  */
  39. bool consistsJustOf(const afString& cSet) const;
  40. /// Returns the first/last occurence of c; 
  41. int getIndex(const char c,bool forward=true) const;
  42. /// Returns the first/last occurence of c; after start. 
  43. /**
  44.  *  If start is -1, then the search begins either at index 0 or Last()
  45.  */
  46.  int getIndex(int start,const char c,bool forward=true) const;
  47. /// Returns the first/last char that is not c.
  48. int getIndexNot(const char c,bool forward=true) const;
  49. /// Returns the first/last char that is not c.
  50. /// If start==-1, then the search begins either at index 0 or Last().
  51. int getIndexNot(int start,const char c,bool forward=true) const;
  52. /// Returns the first/last occurence of str;
  53. int getIndex(const afString& other,bool forward=true) const;
  54. /// Returns the first/last occurence of str
  55. /// If start==-1, then the search begins either at index 0 or Last()
  56. int getIndex(int start,const afString& other,bool forward=true) const;
  57. /// Returns the amount of occurence of c
  58. int getCNum(const char c) const;
  59. /// Gives direct access to the string's data
  60. const char *
  61. get() const  { return (string!=NULL ? string : ""); }
  62. /// Returns a substring
  63. afString getSubString(int from,int count) const;
  64. /// Converts all charater to lower characters.
  65. afString& toLower();
  66. /// Converts all charater to upper characters.
  67. afString& toUpper();
  68. /// Returns the lower of the passed character
  69. static char toLower(char nC);
  70. /// Returns the upper of the passed character
  71. static char toUpper(char nC);
  72. /// Cuts all leading/ending c-s
  73. afString& cutC(const char c,bool forward=true);
  74. /// Cuts all chars c of
  75. afString& cut(char c);
  76. afString& cutS(const afString& cs, bool forward=true);
  77. afString& cut(const afString& cs);
  78. /// Returns the index of the substring. Returns -1 of not found
  79. int find(const afString& nSubString);
  80. /// concanates two strings
  81.     friend inline afString 
  82. operator+( const afString& left, const afString& right);
  83.      bool 
  84. operator<( const afString& ) const;
  85.      bool 
  86. operator>( const afString& ) const;
  87.      bool 
  88. operator==( const afString& ) const;
  89.      bool 
  90. operator==( const char* str ) const;
  91.      bool 
  92. operator!=( const afString& ) const;
  93.      bool 
  94. operator!=( const char* str ) const;
  95.      afString&
  96. operator=( const afString& );
  97.      afString&
  98. operator+=( const afString& );
  99.      char 
  100. operator[](int index) const 
  101. { assert(index<length()&&index>=0);return string[index]; }
  102.      operator const char *() const 
  103. { return get(); }
  104. protected:
  105. char *string;
  106. };
  107. inline afString operator+( const afString& left, const afString& right)
  108. {
  109. afString ret(left);
  110. ret.cat(right);
  111. return ret;
  112. }
  113. #endif