Hôm nay chúng ta sẽ khám phá:
- Khai báo, nhập xuất chuỗi trong C++.
- Các thao tác cơ bản với string: lấy độ dài, nối chuỗi, truy cập ký tự.
- Các bài tập cực thực tế về xử lý chuỗi.
1. Khai báo và nhập xuất chuỗi
Trong C++, để làm việc với chuỗi tiện lợi, ta sử dụng kiểu string từ thư viện <string>.
Khai báo:
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "Xin chao!";
cout << s << endl;
return 0;
}
Lưu ý: Đừng quên #include <string> khi làm việc với kiểu string.
Nhập chuỗi từ bàn phím
- Nếu chuỗi không chứa khoảng trắng (chỉ 1 từ), dùng
cin.
string ten; cin >> ten;
- Nếu chuỗi có khoảng trắng (câu, cụm từ), dùng
getline(cin, s).
string cau; getline(cin, cau);
Ví dụ 1: Nhập tên đầy đủ
#include <iostream>
#include <string>
using namespace std;
int main() {
string hoTen;
cout << "Nhap ho ten: ";
getline(cin, hoTen);
cout << "Xin chao, " << hoTen << "!" << endl;
return 0;
}
2. Một số thao tác cơ bản với string
2.1. Lấy độ dài chuỗi
- Hàm
length()hoặcsize()trả về số lượng ký tự trong chuỗi.
string s = "Hello"; cout << s.length(); // 5
2.2. Nối chuỗi
- Dùng toán tử
+để nối 2 chuỗi.
string s1 = "Hello"; string s2 = " World"; string s3 = s1 + s2; cout << s3; // Hello World
2.3. Truy cập ký tự trong chuỗi
- Có thể dùng cú pháp giống như mảng:
s[i]để truy cập ký tự tại vị tríi(bắt đầu từ 0).
string s = "ABC"; cout << s[0]; // A cout << s[1]; // B cout << s[2]; // C
2.4. So sánh chuỗi
- So sánh hai chuỗi dùng
==,<,>,…
string a = "apple";
string b = "banana";
if (a < b) {
cout << "apple nho hon banana";
}
- So sánh theo thứ tự từ điển (chữ cái).
3. Một số ví dụ thực tế
Ví dụ 2: Đếm số lượng ký tự trong chuỗi
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cout << "Nhap chuoi: ";
getline(cin, s);
cout << "Do dai chuoi: " << s.length() << endl;
return 0;
}
Ví dụ 3: Đảo ngược chuỗi
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cout << "Nhap chuoi: ";
getline(cin, s);
for (int i = s.length() - 1; i >= 0; i--) {
cout << s[i];
}
cout << endl;
return 0;
}
Ví dụ 4: Kiểm tra chuỗi Palindrome
- Palindrome là chuỗi đọc xuôi hay ngược đều giống nhau.
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cout << "Nhap chuoi: ";
getline(cin, s);
bool laPalindrome = true;
int n = s.length();
for (int i = 0; i < n/2; i++) {
if (s[i] != s[n-1-i]) {
laPalindrome = false;
break;
}
}
if (laPalindrome)
cout << "Chuoi la Palindrome." << endl;
else
cout << "Chuoi khong la Palindrome." << endl;
return 0;
}
4. Bài tập thực hành
Bài 1: Nhập một chuỗi và đếm số lượng ký tự ‘a’ trong chuỗi
Bài 2: Nhập một câu, đếm số từ trong câu
Gợi ý:
- Một từ được tính khi gặp dấu cách
' '.
Bài 3: Viết chương trình nhập một chuỗi và in ra chuỗi viết ngược
Bài 4: Kiểm tra hai chuỗi có giống nhau không (không phân biệt hoa thường)
Gợi ý:
- Dùng vòng lặp để chuyển hết ký tự về chữ thường (
tolower(c)).
Tổng kết
Hôm nay, bạn đã:
- Biết cách khai báo, nhập, xuất và xử lý chuỗi trong C++.
- Làm chủ các kỹ thuật: nối chuỗi, duyệt từng ký tự, đếm độ dài chuỗi.
- Viết được chương trình đảo ngược, kiểm tra Palindrome.
👉 Buổi sau, chúng ta sẽ học:
- Làm việc với mảng (array): lưu nhiều giá trị cùng lúc, thao tác với tập hợp số liệu!
