Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
438 KB
Nội dung
Lập trình hướng đối tượng Bài 9: String Giới thiệu • Chuỗi (string) danh sách ký tự – c string – c++ string class • Thí dụ: “hello”, “high school”, “H2O” • Các phép toán chuỗi gồm: – Cộng: “high”+“school”=“highschool” – So sánh: “high”> • cin >> stringObject; • Toán tử >> định dạng liệu mà nhận từ luồng vào, bỏ qua khoảng trắng – Unformatted Input: hàm getline • getline( cin, s) – Không bỏ qua khoảng trắng – Kết thúc ký tự xuống dòng – Đọc toàn dòng ký tự vào s string s = “ABCDEFG”; getline(cin, s); //reads entire line of characters into s char c = s[2]; //assigns ‘C’ to c S[4] = ‘*’; //changes s to “ABCD*FG” C++ String – Không thiết phải kết thúc null – string trỏ mà lớp – Nhiều hàm thành phần với tham số vị trí bắt đầu chiều dài • Nếu đối chiều dài lớn, giá trị max chọn Tạo đối tượng string #include //string initialization string s; //s contains characters string s1( "Hello" ); //s1 contains characters string s2 = “Hello”; //s2 contains characters //implicitly calls the constructor string s3( 8, 'x' ); //s3 contains 'x' characters string s4 = s3; //s4 contains 'x' characters string s5(s2, 3, 2); //s5 copies a substring of s2; it contains ”lo” Đối tượng string • Đối tượng string chuyển sang C-String string s = “ABCDEFG”; const char* cs = s.c_str(); Hàm c_str() trả dạng const char* Đối tượng string Hàm length() trả số ký tự chuỗi cout [...]... tượng string C thể c ng c c chuỗi C+ + sử dụng toán tử + và +=: string s = “ABCD*FG”; string s2 = “Robot”; string s5 = “Soccer”; string s6 = s + “HIJK”; //changes s6 to “ABCD*FGHIJK s2 += s5; //changes s2 to “RobotSoccer” 11 Đối tượng string Hàm: substr() s6 = “ABCD*FGHIJK”; s4 = s6.substr(5, 3); //changes s4 to “FGH” s4 là chuỗi con c a s6, bắt đầu từ vị trí thứ 5 và lấy 3 ký tự 12 Đối tượng string. .. từ int ho c char – C c câu lệnh sau c thể gây ra lỗi ho c chỉ c nh báo (warning) nhưng c thể làm đổ vỡ chương trình sau đó • • • • string string string string error1 = 'c' ; error2( 'u' ); error3 = 22; error4( 8 ); – Tuy nhiên c thể gán một ký tự (char) vào chuỗi sau khi khai báo nó: • s = 'n'; 29 Luồng chuỗi (String Stream) • Cho phép dùng chuỗi như 1 file bên trong • Hữu dụng cho vi c tạo bộ đệm... end); Inserts characters at the specified position push_back(char ch); Inserts a character at the end of the string replace(size_t pos, size_t count, char *pt); replace(size_t pos, size_t count, string &str); replace(iterator first, iterator last, char *pt); replace(iterator first, iterator last, string &str); Replaces elements in a string with the specified characters The range can be specified by a... s2 – s1.compare(start, length, s2) • Compare portion of s1 with all of s2 18 Chuỗi con • Hàm substr trả ra chuỗi con – s1.substr( start, N ); – gets N characters, beginning with index start – returns substring 19 Hoán đổi chuỗi • s1.swap(s2); – Switch contents of two strings 20 C c tính chất c a chuỗi • C c hàm thành phần – s1.size() and s1.length() • Number of characters in a string – s1.capacity()... first occurrence of any character in s2 • Example: s1.find_first_of( "abcd" ) – Returns index of first 'a', 'b', 'c' or 'd' 22 Tìm chuỗi con hay ký tự trong chuỗi • Find functions – s1.find_last_of( s2 ) • Finds last occurrence of any character in s2 – s1.find_first_not_of( s2 ) • Finds first character NOT in s2 – s1.find_last_not_of( s2 ) • Finds last character NOT in s2 23 Thay thế c c ký tự trong chuỗi... append(size_t count, char ch); append(InputIterator Start, InputIterator End); Appends characters to a string from C- style strings, char's or other string objects at(size_t offset); Returns a reference to the character at the specified position Differs from the subscript operator, [], in that bounds are checked begin(); Returns an iterator to the start of the string *c_ str(); Returns a pointer to C- style string. .. ); – Inserts substring of s2 before position index – Substring is N characters, starting at index2 26 Chuyển sang dạng char* • Conversion functions – Strings are not necessarily null-terminated – s1.copy( ptr, N, index ) • Copies N characters into the array ptr • Starts at location index • Need to null terminate char str[8]; string s2 = "cathode"; s2.copy(str, 5, 2); //copy 5 characters into str //starting... the contents of the string clear(); Erases the entire string copy(char *cstring, size_t count, size_t offset); Copies "count" characters into a C- style string starting at offset empty(); Test whether a string is empty end(); Returns an iterator to one past the end of the string erase(iterator first, iterator last); erase(iterator it); erase(size_t pos, size_t count); Erases characters from the specified... và replace(): s6 = “ABCD*FGHIJK”; s6.erase(4, 2); //changes s6 to “ABCDGHIJK”; s6.replace(5, 2, “xyz”); //changes s6 to “ABCDGxyzJK”; replace 2 characters from s6, starting at index 5, with “xyz” 13 Đối tượng string find() function returns the index of the first occurrence of a given substring: string s7 = “Mississippi River basin”; //23 characters cout ... initialization string s; //s contains characters string s1( "Hello" ); //s1 contains characters string s2 = “Hello”; //s2 contains characters //implicitly calls the constructor string s3( 8, 'x' ); //s3 contains... lớp string khai báo thể • Chương trình sử dụng lớp string c n viết: #include using namespace std; string x(“high school”); string x= “high school”; string x; x=“high school”; C+ + String. .. thiệu • Chuỗi (string) danh sách ký tự – c string – c+ + string class • Thí dụ: “hello”, “high school”, “H2O” • C c phép toán chuỗi gồm: – C ng: “high”+“school”=“highschool” – So sánh: “high”