Lớp String Trong C++ Và Các Hàm Thường Dùng Của Lớp String

Ngoài mảng ký tự, chúng ta có thể sử dụng lớp string để lưu trữ chuỗi ký tự trong C++.

1. Lớp string trong C++

Trong C++, bạn có thể tạo ra một đối tượng string để lưu trữ chuỗi ký tự. Không giống mảng ký tự, đối tượng string không có kích thước cố định và có thể mở rộng nếu cần.

Đối tượng string được tạo bởi lớp string trong thư viện #include <string>.

Cú pháp khai báo đối tượng string:

string <tên đối tượng string>;

Có thể gán một hằng string hoặc các string khác vào một biến string.string str1 = "I love"; string str2 = str1;

Có thể gán hai chuỗi string, nối chuỗi bằng toán tử “+”, so sánh hai chuỗi bằng các toán tử quan hệ (<, >, ==, !=,…). Một string với chiều dài n, những vị trí của các ký tự của string có phạm vi từ 0 tới n – 1. Có thể truy xuất ký tự trong string như mảng với cú pháp: <tên chuỗi> [vị trí].string str1 = "Apple"; string str2 = "apple"; string str3 = "apples"; string str4 = "orange"; bool t1 = (str1 == str2); // t1 = false bool t2 = (str1 < str2); //t2 = true bool t3 = (str2 < str3); //t3 = true bool t4 = (str3 != str4); //t4 = true bool t5 = (str4 > str3); // t5 = true string myMsg = "How are you doing?"; cout<<myMsg[4]<<" "<<myMsg[12]<<myMsg[13]<<myMsg[16]<<endl; // a dog

2. Các hàm thành viên trong lớp string

Thư viện <string> rất nhiều hàm cho phép xử lý chuỗi. Ví dụ: tìm chiều dài chuỗi, so sánh hai chuỗi, tìm kiếm/rút trích chuỗi con, nối chuỗi,…

Hàm s.length()

Trả về số lượng ký tự trong string s.string s1 = "introduction to programming"; cout<<"length of s1 = "<<s1.length();//27

Hàm s.substr(x, y)

Rút trích một chuỗi con với chiều dài y bắt đầu tại vị trí x. Nếu không có y, một chuỗi con từ vị trí x tới cuối chuỗi sẽ được rút trích.string s1 = "introduction to programming"; cout<<"substring has 10 characters of s1 start at 5:"<<s1.substr(5, 10); //Kết quả: substring has 10 characters of s1 start at 5:duction to

Hàm s.find(r)

Kiểm tra chuỗi string r có xuất hiện trong chuỗi s hay không. Nếu có thì trả về vị trí bắt đầu xuất hiện chuỗi r trong chuỗi s.string s1 = "introduction to programming"; cout<<"position of 'duc' string in s1:"<<s1.find("duc");//5

Hàm s.erase(x, n)

Xóa n ký tự bắt đầu tại vị trí x.string s1 = "introduction to programming"; s1.erase(5, 15); cout<<"s1 string after erase:"<<s1;//s1 string after erase:introramming

Hàm s.replace(x, n, str)

Thay thế n ký tự tại vị trí bắt đầu là x bằng chuỗi str. Lưu ý: chiều dài của str có thể lớn hơn n.string s1 = "introduction to programming"; s1.replace(5, 10, "123123123"); cout<<"s1 string after replace:"<<s1;//s1 string after replace:intro123123123 programming

Hàm s1.compare(s2)

So sánh chuỗi s1 với s2. Giá trị trả về là -1 nếu s1 < s2, bằng 0 nếu s1 == s2, là 1 nếu s1 > s2.string s1 = "introduction to programming"; string s2 = "c++ programming language"; cout<<"s1 compare s2:"<<s1.compare(s2);//1

Hàm s1.swap(s2)

Hoán đổi nội dung hai chuỗi.string s1 = "introduction to programming"; string s2 = "c++ programming language"; s1.swap(s2); cout<<"s1 after swap:"<<s1<<endl; cout<<"s2 after swap:"<<s2; //Kết quả: //s1 after swap:c++ programming language //s2 after swap:introduction to programming

Hàm s1.insert(index, s2)

Thêm chuỗi s2 vào s1 sau vị trí index.

  • Khai báo và khởi tạo mảng 2 chiều (two dimensional array) trong Java
  • Tạo (create) và ghi (write) file trong PHP
  • Các toán tử (operators) trong Java
  • Hàm ảo (virtual function) trong lập trình hướng đối tượng với C++
  • Gỡ rối khi dùng hàm date() trong PHP
string s1 = "introduction to programming"; string s2 = "c++ programming language"; s1.insert(10, s2); cout<<"s1 after insert s2:"<<s1; //Kết quả: //s1 after insert s2:introductic++ programming languageon to programming 4.9/5 - (249 bình chọn)Bài trước và bài sau trong môn học<< Chuỗi ký tự là gì? Cách khởi tạo và một số kỹ thuật lập trình trên chuỗiMảng hai chiều là gì? Cách khai báo và khởi tạo trong C++ >>

Từ khóa » Thư Viện String.h C++