Đồ á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);
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:
- Đồ án Thực hành cài đặt lớp Cstring.doc
- cstring.rar