Đồ án Thực hành cài đặt lớp Cstring

Cài đặt lớp cstring bao gồm các hàm khởi tạo:

 cstring(); // Hàm tạo không đối số

 cstring(cstring &ss); // Hàm tạo với đối số là cstring

 cstring(char*s); // Hàm tạo với đối số là char*

 cstring(char a,int n=1); // Hàm tạo với đối số là char, n: khởi tạo chuỗi gồm n ký tự liên tiếp giống nhau, mặc định n = 1

 ~cstring(); // Hàm hủy

 cstring operator=(cstring&ss); // gán chuỗi

 cstring operator=(char*s);

 

doc3 trang | Chuyên mục: Lập Trình Hướng Đối Tượng | Chia sẻ: dkS00TYs | Lượt xem: 2299 | Lượt tải: 1download
Tóm tắt nội dung Đồ án Thực hành cài đặt lớp Cstring, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Báo cáo:	ĐỒ ÁN THỰC HÀNH GIỮA KỲ
	 CÀI ĐẶT LỚP CSTRING
Đây là bản báo cáo thực hành cài đặt lớp cstring thực hiện trên Visual C++ 6.0
Thực hiện: Lê Ngọc Phi 	MSSV 08520279
	 Lương Văn Thắng	MSSV 08520365
Cài đặt lớp cstring bao gồm các hàm khởi tạo:
 cstring(); // Hàm tạo không đối số
	cstring(cstring &ss); // Hàm tạo với đối số là cstring
	cstring(char*s); // Hàm tạo với đối số là char*
	cstring(char a,int n=1); // Hàm tạo với đối số là char, n: khởi tạo chuỗi gồm n ký tự liên tiếp giống nhau, mặc định n = 1
	~cstring(); // Hàm hủy
	cstring operator=(cstring&ss); // gán chuỗi
	cstring operator=(char*s);
Các Phép so sánh:
	bool operator==(cstring ss); 
	bool operator==(char*s);
	bool operator>(cstring ss);
	bool operator>(char*s);
	bool operator<(cstring ss);
	bool operator<(char*s);
Trả về chuỗi kết quả sau khi ghép 2 chuỗi với nhau:
	friend cstring operator+(const cstring& ss1,const cstring &ss2);
	friend cstring operator+(cstring ss1,char*s1);
Gán chuỗi 2 cho chuỗi 1:
	cstring operator +=(cstring ss);
	cstring operator +=(char*s);
	//string as an array methods
	int GetLenght() // trả về số ký tự của chuỗi
	bool IsEmpty() // kiểm tra chuỗi rỗng
	char GetAt(int i) // trả về ký tự tại vị trí i
	cstring SetAt(char a,int i) // gán giá trị tại vi trí i
	cstring Empty() // thiết lập lại chuỗi về rỗng
	//comparison methods
	int Compare(cstring ss) // hàm so sánh chuỗi có phân biệt chữ hoa và chữ thường
	int CompareNoCase(cstring ss) // hàm so sánh chuỗi không phân biệt chữ hoa và chữ thường
	//other conversion methods
	cstring MakeUpper() // hàm đổi chữ thường sang chữ hoa
	cstring MakeLower() // hàm đổi chữ hoa sang chữ thường
	cstring TrimLeft() // hàm loại bỏ các ký tự trắng đầu chuỗi
	cstring TrimRight() // hàm loại bỏ ký tự trắng cuối chuỗi
	//extraction methods
 char* Mid(int i,int n) // hàm lấy chuỗi con trong chuỗi, i là ký tự đầu tiên trong chuỗi con, n là số ký tự cần lấy 
char* Left(int n) // hàm lấy các ký tự bên trái của chuỗi, n là số ký tự cần lấy
char* Right(int n) //hàm lấy các ký tự bên phải của chuỗi, n là số ký tự cần lấy
	//Searching Methods
int FindStr(cstring ss) // tìm vị trí xuất hiện đầu tiên của chuỗi hay ký tự
int ReverseFind(cstring ss) // tìm vị trí xuất hiện cuối của chuỗi hay ký tự
	//input and output methods
ostream& operator<<(ostream& os,cstring &s) // hàm xuất
istream& operator>>(istream& is,cstring &s) // hàm nhập
Chương trình demo trong hàm main :
Khai báo các biến
Nhập vào 2 chuỗi, sử dụng các toán tử đã được định nghĩa để thực hiện các phép so sánh, cộng , nối 2 chuỗi…
Sử dụng các hàm GetAt(), SetAt() để truy xuất, chỉnh sửa các phần tử trong chuỗi
Sử dụng hàm Compare(), CompareNoCase() để so sánh 2 chuỗi nhập vào
Sử dụng các hàm Mid(), Left(), Right() để truy xuất chuỗi con từ 1 chuỗi cho trước
Hàm Mid(int i, int n) dùng để tạo một chuỗi con từ vị trí i và lấy n ký tự từ chuỗi mẹ cho trước, thực hiện bằng cách tạo một biến “tam” và gán giá trị từ vị trí thứ i-1 trong chuỗi mẹ (bao gồm n phần tử).
Hàm Left(int n) tạo một chuỗi con tính từ đầu chuỗi mẹ và lấy n ký tự, thực hiện bằng cách gọi lại hàm Mid với giá trị i=1.
Hàm Right(int n) tương tự hàm Left nhưng lấy từ cuối chuỗi, i = độ dài chuỗi mẹ + 1 – n.
Sử dụng hàm MakeLower(), MakeUpper() để đổi chuỗi ký tự hoa sang thường và từ thường sang hoa. Sử dụng hàm Trimleft(), Trimright() để cắt ký tự trắng ở đầu chuỗi và ở cuối chuỗi
Trimleft : sử dụng vòng lặp while, khi giá trị đầu của chuỗi còn bằng “ ” thì memmove để loại bỏ khoảng trắng
Trimright : tương tự sử dụng vòng lặp while để kiểm tra phần tử cuối – 1 = “ ” thì gán phần tử đó là phần tử cuối chuỗi. Nhận biết không còn khoảng trắng cuối chuỗi bằng cách thêm “/end” vào cuối lệnh cout
Sử dụng hàm FindStr() và ReverseFind() để tìm kiếm vị trí chuỗi ký tự từ chuỗi cho trước
FindStr : tìm vị trí xuất hiện đầu tiên của chuỗi ký tự nhập vào trong chuỗi cho trước. Thực hiện bằng cách khởi tạo một con trỏ *s để lấy địa chỉ của chuỗi tìm kiếm, nếu s!=NULL thì vị trí = độ dài chuỗi cho trước – độ dài chuỗi từ vị trí s + 1
ReverseFind : tìm vị trí xuất hiện cuối cùng của chuỗi ký tự nhập vào trong chuỗi cho trước. Tương tự hàm FindStr nhưng ta đảo giá trị của chuỗi cho trước và chuỗi tìm kiếm bằng hàm strrev rồi mới gán s, sau đó đảo trả lại giá trị.
----------------------------------------HẾT------------------------------

File đính kèm:

  • docĐồ án Thực hành cài đặt lớp Cstring.doc
  • rarcstring.rar