TPassward.h
上传用户:wenliang_x
上传日期:2013-05-26
资源大小:19k
文件大小:1k
源码类别:

屏幕保护

开发平台:

Visual C++

  1. #ifndef TPASSWARDH
  2. #define TPASSWARDH
  3. class TPassward  //定义能任意长度的字符串对象
  4. {
  5. private:
  6. char* string; //字符串首地址
  7. int len;      //字符串长度
  8. public:
  9. //缺省构造函数
  10. TPassward()
  11. {
  12. len = 0;
  13. string = new char[len+1];
  14. strcpy(string,"");
  15. }
  16. //重载构造函数
  17. TPassward(int _len)
  18. {
  19. len = _len;
  20. string = new char[len+1];
  21. }
  22. //拷贝构造函数
  23. TPassward(TPassward &S)
  24. {
  25. len = S.len;
  26. string = new char [len+1];
  27. strcpy(string,S.string); 
  28. }
  29. //得到字符串首地址
  30. char* GetString()
  31. {
  32. return string;
  33. }
  34. //两个对象相等
  35. TPassward operator=(TPassward& S)
  36. {
  37. len = S.len;
  38. delete string;
  39. string = new char[len+1];
  40. strcpy(string,S.string);
  41. return *this;
  42. }
  43. //加上一个字符
  44. TPassward operator+(char c)
  45. {
  46. TPassward temp(len+1);
  47. strcpy(temp.string,string);
  48. temp.string[len]=c;
  49. temp.string[len+1]='';
  50. *this = temp;
  51. return *this;
  52. }
  53. //是否和一个字符串相等
  54. int operator==(const char *const s)
  55. {
  56. int slen = strlen(s);
  57. if (len != slen)
  58. return false; 
  59. for (int i=0;i<len;i++)
  60. if (string[i] != s[i])
  61. return false;
  62. return true;
  63. }
  64. //清空字符串
  65. void clear()
  66. {
  67. len = 0;
  68. delete string;
  69. string = new char[len+1];
  70. strcpy(string,"");
  71. }
  72. //析构函数
  73. ~TPassward()
  74. {
  75. len = 0;
  76. delete string;
  77. }
  78. };
  79. #endif