Tổng hợp các thao tác xử lí chuỗi (string) trong C++
Ở bài trước, Isinhvien đã giới thiệu đến các bạn cách khởi tạo, gán giá trị và nhập xuất chuỗi trong C++. Và trong bài viết này, Isinhvien sẽ tiếp tục chia sẻ đến các bạn các thao tác cơ bản để xử lí chuỗi (string) trong C++ để giúp các bạn làm việc với chuỗi nhanh chóng và dễ dàng hơn nhé!
Xác định số kí tự trong chuỗi C++
Để xác định số kí tự trong chuỗi cũng như tính độ dài chuỗi thì ta có thể dùngmột trong 2 phương thức sau đây:
- Dùng lenght()
- Dùng size()
Ví dụ:
#include <iostream> #include <string> using namespace std; int main() { string str; cout << "Nhap vao mot chuoi: "; getline(cin, str); // Nhập chuỗi cout << "Do dai chuoi vua nhap: " << str.size() << endl; cout << "Do dai chuoi vua nhap: " << str.length(); return 0; }
Kết quả thực thi:
Nhap vao mot chuoi: Isinhvien Do dai chuoi vua nhap: 9 Do dai chuoi vua nhap: 9
Vậy cả hai phương thức length và size của lớp string đều được dùng để tính độ dài của chuỗi kí tự.
Kiểm tra chuỗi rỗng hay không trong C++
Để kiểm tra xem một chuỗi có rỗng hay không ta dùng phương thức empty, khi chuỗi rỗng thì trả về true, ngược lại thì trả về false.
Ví dụ:
#include <iostream> #include <string> using namespace std; int main() { string str="Isinhvien"; if(str.empty()) cout<<"Chuoi rong"; else cout<<"Chuoi khong rong"; return 0; }
Kết quả thực thi
Chuoi khong rong
Biến chuỗi thành chuỗi rỗng trong C++
Để biến một chuỗi thành rỗng, ta sẽ dùng phương thức clear.
Ví dụ:
#include <iostream> #include <string> using namespace std; int main() { string str="Isinhvien"; cout << "Truoc khi xoa: "<< str<< endl; str.clear(); cout << "Sau khi xoa: " << str; }
Kết quả thực thi:
Truoc khi xoa: Isinhvien Sau khi xoa:
Truy cập đến một phần tử trong chuỗi C++
Để truy cập đến một phần tử trong chuỗi, ta có thể làm 2 cách sau:
tên_chuỗi [vị_trí]
tên_chuỗi.at(vị_trí)
Nếu chương trình phát hiện hành vi truy xuất đến phần tử có chỉ số không hợp lệ (vị_trí < 0 hoặc vị trí >= string length)
, Chương trình sẽ kết thúc và thông báo dòng lệnh gây ra lỗi cho bạn.
Ta cũng có thể truy cập nhanh đến phần tử đầu tiên trong chuỗi với phương thức front() và phần tử cuối cùng trong chuỗi với phương thức back().
Ví dụ:
#include <iostream> #include <string> using namespace std; int main() { string str="Isinhvien"; cout << " Phan tu thu 1:" << str.front() << endl; cout << " Phan tu thu 2:" << str[1] << endl; cout << " Phan tu thu 3:" << str.at(2) << endl; cout << " Phan tu thu 4:" << str.back() << endl; }
Kết quả thực thi:
Phan tu thu 1:I Phan tu thu 2:s Phan tu thu 3:i Phan tu thu 4:n
Thêm bớt vào kí tự cuối cùng của chuỗi trong C++
Để thêm một phần tử vào sau chuỗi, ta dùng phương thức push_back(), ngược lại phương thức pop_back() sẽ xóa đi kí tự cuối cùng hiện tại của chuỗi.
Ví dụ:
#include <iostream> #include <string> using namespace std; int main() { string str="Isinhviec"; str.pop_back(); str.push_back('n'); cout << str; }
Kết quả
Isinhvien
Nối chuỗi kí tự trong C++
Để nối thêm một chuỗi kí tự vào sau một chuỗi đã có, ta sẽ dùng phương thức append. Ta có thể nối với một chuỗi khác hoặc một mảng kí tự nào đó. Để tiết kiệm thời gian hơn. ta cũng có thể dùng toán tử += để nối 2 chuỗi với nhau.
Ví dụ:
#include <iostream> #include <string> using namespace std; int main() { string str="Isinhvien"; string s="com"; str.append("."); str+=s; cout << str; }
Kết quả:
Isinhvien.com
So sánh 2 chuỗi với nhau trong C++
Để so sánh 2 chuỗi, ta sẽ dùng phương thức compare, trả về 0 khi 2 chuỗi giống nhau hoàn toàn, lớn hơn 0 nếu chuỗi ta cần so lớn hơn và nhỏ hơn 0 nếu chuỗi ta cần so nhỏ hơn.
Ví dụ:
#include <iostream> #include <string> using namespace std; int main() { string str1; string str2; cout << "Nhap str1: "; cin>> str1; cout << "Nhap str2: "; cin>> str2; if(str1.compare(str2)==0) cout << "str1=str2"; else if(str1.compare(str2)>0) cout << "str1>str2"; else cout << "str1<str2"; }
Kết quả 1
Nhap str1: isinhvien Nhap str2: Isinhvien str1>str2
Kết quả 2:
Nhap str1: Isinhvien Nhap str2: Isinhvien.com str1<str2
Đảo chuỗi trong C++
Để đảo một chuỗi trong C++ ta sẽ dùng hàm reverse, để dùng hàm nãy thì ta phải #include<algorithm> mới dùng được.
Ví dụ:
#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { string str="Isinhvien"; reverse(str.begin(), str.end()); cout << str; }
Kết quả:
neivhnisI
Hi vọng sau bài viết này thì các bạn sẽ thành thạo được các thao tác với chuỗi trong ngôn ngữ C++ nhé! Nếu thấy bài viết này của Isinhvien hay và bổ ích thì hãy chia sẻ nó đến với bạn bè của mình để ủng hộ cho Isinhvien và giúp Isinhvien ngày càng phát triển hơn nhé! Chúc các bạn thành công!