Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: tạo toán tử ==trong lớp string với tham số là string, char

  1. #1
    Ngày gia nhập
    01 2011
    Bài viết
    14

    Angry tạo toán tử ==trong lớp string với tham số là string, char

    #include <iostream.h>
    #include <conio.h>
    #include <string.h>
    #include <assert.h>
    class CMyString{
    public:
    CMyString(char *a="");
    CMyString(const CMyString &);
    ~CMyString();
    // cas phep =, (), [],-> la cac ham thanh vien cua lop
    CMyString & operator=( const CMyString &);
    char & operator[]( int );
    //string & operator()(int , int );
    friend bool operator ! ( const CMyString &);
    friend bool operator == ( const CMyString &, const CMyString &);
    friend bool operator != ( const CMyString &, const CMyString &);
    friend bool operator >= ( const CMyString &, const CMyString &);
    friend bool operator <= ( const CMyString &, const CMyString &);
    friend bool operator > ( const CMyString &, const CMyString &);
    friend bool operator < ( const CMyString &, const CMyString &);
    friend CMyString & operator += ( CMyString &, const CMyString &);
    friend CMyString operator + ( const CMyString &, const CMyString &);
    friend ostream &operator << ( ostream &, const CMyString &);
    friend istream &operator >> ( istream &, CMyString &);
    int get_length();
    private:
    char *p;
    int length;
    };
    CMyString::CMyString(char *a)
    {
    length=strlen(a);
    p=new char[length+1];
    assert(p!=0);
    strcpy(p, a);
    }
    CMyString::CMyString(const CMyString &a)
    {
    length=a.length;
    p=new char[length+1];
    assert(p!=0);
    strcpy(p,a.p);
    }
    CMyString::~CMyString()
    {
    delete [] p;
    }
    CMyString & CMyString::operator=( const CMyString &R)
    {
    if( &R!=this) // tranh truong hop no gan cho chinh no
    {
    delete [] p;
    length=R.length;
    p=new char[length+1];
    strcpy(p,R.p);
    }else cout<<"Khong the gan no cho chinh no"<<endl;
    return *this;
    }
    char & CMyString::operator[]( int n)
    {
    assert( n<length && n>=0);
    return p[n];
    }
    bool operator !( const CMyString &a)
    // toan tu kiem tra ngan xep rong
    {
    return a.length==0;
    }
    bool operator == ( const CMyString &a, const CMyString &b)
    {
    return strcmp(a.p, b.p)==0;
    }
    bool operator != ( const CMyString &a, const CMyString &b)
    {
    return !(a==b);
    }
    bool operator >= ( const CMyString &a, const CMyString &b)
    {
    return (strcmp(a.p,b.p)>=0);
    }
    bool operator <= ( const CMyString &a, const CMyString &b)
    {
    return (strcmp(a.p,b.p)<=0);
    }
    bool operator > ( const CMyString &a, const CMyString &b)
    {
    return ( strcmp(a.p,b.p)>0);
    }
    bool operator < ( const CMyString &a, const CMyString &b)
    {
    return (strcmp(a.p,b.p)<0);
    }
    CMyString & operator +=( CMyString &a, const CMyString &b)
    {
    char *str_temp= a.p;
    a.length += b.length;
    a.p= new char[a.length+1];
    assert (a.p!=0);
    strcpy(a.p, str_temp);
    strcat(a.p,b.p);
    delete [] str_temp;
    return a;
    }





    CMyString operator + ( const CMyString &a, const CMyString &b)
    // toan tu noi hai xau
    {
    CMyString str;
    str.length=a.length + b.length;
    delete [] str.p;
    str.p= new char[str.length+1];
    strcpy( str.p,a.p);
    strcat( str.p,b.p);
    return str;
    }
    ostream & operator << ( ostream &out, const CMyString &a)
    {
    out<<a.p;
    return out;
    }
    istream & operator >> ( istream &in, CMyString &a)
    {
    char str[100];
    cout << "\n Nhap xau: ";
    in.get(str,100);
    // cho phep nhap xau vao co kem theo ki tu rong
    a = str;
    return in;
    }
    int CMyString::get_length()
    {
    return length;
    }
    ai có thể code mẫu cho em không??. thank nhiều!

  2. #2
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    ý bạn là gi? code mẫu cho bạn phần nao?

  3. #3
    Ngày gia nhập
    01 2011
    Bài viết
    14

    Red face tạo toán tử == trong lớp string với 2 tham số là string, char

    em muốn code mẫu phần tạo toán tử == với tham số là tring, char
    CMyString operator == ( const CMyString &, const char)

Các đề tài tương tự

  1. Cách gán một string vào một char trong VC++.NET?
    Gửi bởi Greengrass17 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 15-09-2013, 06:54 PM
  2. sử khác biệt giữ String::operator += ()va String::operator +() khi sử dung char *p
    Gửi bởi sasadudu trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 08-04-2011, 03:28 PM
  3. string, char, Unicode char trong VC++
    Gửi bởi TQN trong diễn đàn Tutorials và Thủ thuật Visual C++
    Trả lời: 2
    Bài viết cuối: 09-03-2010, 01:35 PM
  4. C++ | Cuối string có phải là NULL như trong char* hay không?
    Gửi bởi Cpro trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 11-05-2009, 09:35 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn