⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mystring.h

📁 一些学习c++的例题
💻 H
字号:
#include <iostream>

using namespace std;

typedef char * PCHAR;
typedef const char * CPCHAR;

class CString
{
private:
   PCHAR string;

   int  strlen(CPCHAR s)
   {
      PCHAR p = (PCHAR)s;

      while ( *p++ );

      return p - (PCHAR)s;
   }

   PCHAR strcpy(PCHAR& dest, CPCHAR src)
   {
      if (!src) return NULL;

      if (dest) delete dest;
      dest = new char[strlen(src) + 1];
      PCHAR p = dest;
      while ( *p++ = *src++ );
      return dest;
   }

   PCHAR strcat(CPCHAR s1, CPCHAR s2)
   {
      PCHAR p = new char[strlen(s1) + strlen(s2) + 1], t = p;

      while ( *s1 ) *p++ = *s1++;
      while ( *p++ = *s2++ );
      return t;
   }

   bool strcmp(const char *s1, const char *s2)
   {
      for ( ; *s1 && * s2; s1++, s2++ )
	  if ( *s1 - *s2 != 0 ) return false;

      if ( *s1 || *s2 ) return false;

      return true;
   }

public:
   CString() : string(NULL) {}

   CString(CPCHAR s)
   {
      string = NULL;
      strcpy(string, s);
   }

   CString(const CString& s)
   {
      string = NULL;
      strcpy(string, s.string);
   }

   ~CString()
   {
      if (string) delete string;
   }

   CString& Concat(CPCHAR s)
   {
      PCHAR p = strcat(string, s);
      strcpy(string, p);
      return *this;
   }

   CString& Copy(const CString& s)
   {
      strcpy(string, s.string);
      return *this;
   }

   bool Compare(CString& s)
   {
      return strcmp(string, s.string);
   }

   void Print()
   {
      cout << string << endl;
   }
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -