Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
TIN HỌC ĐẠI CƯƠNG
BÀI 8: GIỚI THIỆU XÂU KÍ TỰ
Giảng Viên: ThS. Đinh Phú Hùng
Bộ môn: Khoa Học Máy Tính
1 / 22
Email: hungdp@tlu.edu.vn
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Nội Dung
1 Giới thiệu kí tự và bảng mã ASCII
2 Giới thiệu về xâu kí tự
3 Các hàm thao tác trên kí tự
4 Một số phương thức (hàm) thao tác trên xâu
5 Tóm tắt nội dung bài học
2 / 22
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Giới thiệu kí tự và bảng mã ASCII
3 / 22
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Giới thiệu kí tự và bảng mã ASCII
4 / 22
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Giới thiệu kí tự và bảng mã ASCII
Cách khai báo: char c; hoặc char c = ‘a’; Cách nhập và in: Vẫn sử dụng các câu lệnh cin và cout. Ví dụ: Nhập 1 kí tự từ bàn phím, in ra kí tự vừa nhập và mã tương ứng trong bảng mã ASCII.
Chương trình minh họa
#include
5 / 22
char c; cout«“Hay nhap vao 1 ky tu:”; cin»c; cout«“Ky tu vua nhap la: ”«c«endl; cout«“Ma ky tu vua nhap la: ”«(int)c; }
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Giới thiệu kí tự và bảng mã ASCII
Ví dụ: Nhập từ bàn phím 1 số nguyên n. In ra màn hình mã tương ứng với ký tự đó.
Chương trình minh họa
#include
6 / 22
int n; cout«"Hay nhap vao 1 so nguyen:"; cin»n; cout«(char)n«endl; }
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Giới thiệu về xâu kí tự
Khái niệm: Là tập hơp từ hai kí tự trở lên. Ví dụ: S = "chao ban"
Để sử dụng xâu kí tự ta cần thêm thư viện
Cách khai báo
7 / 22
//Khai báo một xâu ký tự s chưa khởi tạo giá trị; string s; Khai báo một xâu ký tự được khởi tạo trước giá trị. string s = “chao ban”; string s(“chao ban”);
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Giới thiệu về xâu kí tự
Cách nhập dữ liệu cho xâu kí tự
Ta có thể dùng lệnh cin»s; để nhập dữ liệu cho một xâu kí tự s nhưng với điều kiện xâu s không chứa các kí tự khoảng trắng (dấu cách).
Đối với xâu kí tự có chứa các kí tự khoảng trắng (dấu cách), ta phải dùng lệnh sau: getline(cin, s);
Cách in dữ liệu cho xâu kí tự
8 / 22
Để in 1 xâu kí tự s ra màn hình ta có thể sử dụng lệnh cout«s;
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Giới thiệu về xâu kí tự
Ví dụ: Nhập một xâu kí tự từ bàn phím, in xâu kí tự vừa nhập ra màn hình.
Chương trình minh họa
#include
9 / 22
string s; cout«“Nhap mot xau ki tư : ”; getline(cin, s); cout«“Xau ki tự vua nhap la: ”; cout«s; }
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Các hàm thao tác trên kí tự
Hàm isalpha(c).
Hàm isdigit(c).
Hàm isalnum(c).
Hàm isspace(c).
Hàm isxdigit(c).
Hàm isupper(c).
Hàm islower(c).
Hàm toupper(c).
Hàm tolower(c).
10 / 22
Chú ý: Tham số đầu vào của các hàm là kí tự
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Các hàm thao tác trên kí tự
Cách dùng hàm isalpha(c)
Kiểm tra xem biến kí tự c có phải là ký tự nằm trong bảng chữ cái hay không. Hàm trả về giá trị khác 0 nếu đúng, trả lại giá trị bằng 0 nếu không phải.
(cid:40) isalpha(c) = khác 0 0 nếu c thuộc bảng chữ cái nếu c không thuộc bảng chữ cái
Ví dụ: - isalpha(’x’) có giá trị khác 0. //’x’ thuộc bảng chữ cái - isalpha(’$’) có giá trị bằng 0. //’$’ thuộc bảng chữ cái
11 / 22
Chú ý: Các kí tự nằm trong bảng chữ cái là các kí tự từ ’a’ đến ’z’ hoặc ’A’ đến ’Z’
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Các hàm thao tác trên kí tự
Cách dùng hàm isdigit(c)
Kiểm tra xem biến kí tự c có phải là ký tự số hay không. Hàm trả về giá trị khác 0 nếu đúng, trả lại giá trị bằng 0 nếu không phải.
(cid:40) isdigit(c) = khác 0 0 nếu c là kí tự số nếu c không là kí tự số
Ví dụ: - isdigit(’6’) có giá trị khác 0. //’6’ là kí tự số - isdigit(’a’) có giá trị bằng 0. //’a’ không là kí tự số
12 / 22
Chú ý: Các kí tự số là các kí tự từ ’0’ đến ’9’
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Các hàm thao tác trên kí tự
Cách dùng hàm isalnum(c)
Kiểm tra xem biến kí tự c có phải là ký tự vừa nằm trong bảng chữ cái và vừa là kí tự số hay không. Hàm trả về giá trị khác 0 nếu đúng, trả lại giá trị bằng 0 nếu không phải.
(cid:40) isalnum(c) = khác 0 0 nếu c là kí tự số & chữ cái nếu c không là kí tự số & chữ cái
13 / 22
Ví dụ: - isalnum(’6’) có giá trị khác 0. //’6’ là kí tự số - isalnum(’a’) có giá trị khác 0. //’a’ là kí tự chữ cái - isalnum(’$’) có giá trị bằng 0. //’$’ không là kí tự số & chữ cái
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Các hàm thao tác trên kí tự
Cách dùng hàm isspace(c)
Kiểm tra xem biến kí tự c có phải là ký tự khoảng trắng hay không. Hàm trả về giá trị khác 0 nếu đúng, trả lại giá trị bằng 0 nếu không phải.
(cid:40) isspace(c) = khác 0 0 nếu c là kí tự khoảng trắng nếu c không là kí tự khoảng trắng
14 / 22
Ví dụ: - isspace(’ ’) có giá trị khác 0. //’ ’ là kí khoảng trắng - isspace(’a’) có giá trị bằng 0. //’a’ không là kí khoảng trắng
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Các hàm thao tác trên kí tự
Cách dùng hàm isxdigit(c)
Kiểm tra xem biến kí tự c có phải là ký hệ 16 hay không. Hàm trả về giá trị khác 0 nếu đúng, trả lại giá trị bằng 0 nếu không phải.
(cid:40) isxdigit(c) = khác 0 0 nếu c là kí tự hệ 16 nếu c không là kí tự hệ 16
Ví dụ: - isxdigit(’6’) có giá trị khác 0. //’ ’ là kí tự hệ 16 - isxdigit(’a’) có giá trị khác 0. //’a’ là kí tự hệ 16. - isxdigit(’h’) có giá trị bằng 0. //’h’ không là kí tự hệ 16.
15 / 22
Chú ý: Các kí tự hệ 16 là các kí tự từ ’0’ đến ’9’, từ ’a’ đến ’f’, từ ’A’ đến ’F’
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Các hàm thao tác trên kí tự
Cách dùng hàm isupper(c)
Kiểm tra xem biến kí tự c có phải là ký hoa hay không. Hàm trả về giá trị khác 0 nếu đúng, trả lại giá trị bằng 0 nếu không phải.
(cid:40) isupper (c) = khác 0 0 nếu c là kí tự hoa nếu c không là kí tự hoa
16 / 22
Ví dụ: - isupper(’A’) có giá trị khác 0. //’A’ là kí tự hoa. - isupper(’a’) có giá trị bằng 0. //’a’ không là kí tự hoa.
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Các hàm thao tác trên kí tự
Cách dùng hàm islower(c)
Kiểm tra xem biến kí tự c có phải là ký thường hay không. Hàm trả về giá trị khác 0 nếu đúng, trả lại giá trị bằng 0 nếu không phải.
(cid:40) islower (c) = khác 0 0 nếu c là kí tự thường nếu c không là kí tự thường
17 / 22
Ví dụ: - islower(’a’) có giá trị khác 0. //’a’ là kí tự thường. - islower(’A’) có giá trị bằng 0. //’A’ không là kí tự thường.
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Các hàm thao tác trên kí tự
Cách dùng hàm toupper(c)
Dùng để chuyển kí tự c thành ký tự chữ hoa. Hàm trả về mã tương ứng với ký tự hoa có trong bảng mã ASCII.
18 / 22
Ví dụ: - cout«toupper(‘a’); //sẽ in ra giá trị 65 - cout«(char)toupper(‘a’); //sẽ in ra ký tự ‘A’
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Các hàm thao tác trên kí tự
Cách dùng hàm tolower(c)
Dùng để chuyển kí tự c thành ký tự thường. Hàm trả về mã tương ứng với ký tự thường có trong bảng mã ASCII.
19 / 22
Ví dụ: - cout«tolower(‘A’); //sẽ in ra giá trị 97 - cout«(char)tolower(‘A’); //sẽ in ra ký tự ‘a’
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Một số phương thức (hàm) thao tác trên xâu
S.resize(tham số): Thay đổi kích thước xâu.
S.size(): Lấy kích thước xâu
S.insert(các tham số): Thêm phần tử mới vào xâu.
S.push_back(tham số): Thêm phần tử mới vào cuối xâu
S.erase(tham số): Xóa phần tử của xâu
S.pop_back(): Xóa phần tử cuối cùng của xâu.
S.append(tham số): Dùng để nối xâu
20 / 22
Chú ý: Các phương thức thao tác trên xâu cũng giống như trên mảng động (lớp vector).
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Một số bài toán trên xâu kí tự
Đếm các kí tự (hoa, thường, đặc biệt...) có trong xâu.
Kiểm tra tính chất của xâu kí tự (có toàn kí tự hoa, thường,...) hay không.
Kiểm tra xem xâu có đối xứng hay không
Đảo ngược một xâu kí tự
Xóa tất cả các kí tự (hoa, thường,...) có trong xâu
21 / 22
Tạo một xâu mới chứa toàn kí tự (hoa, thường,...) từ xâu đã cho.
Giới thiệu kí tự và bảng mã ASCII Giới thiệu về xâu kí tự Các hàm thao tác trên kí tự Một số phương thức (hàm) thao tác trên xâu Tóm tắt nội dung bài học
Tóm tắt nội dung bài học
Cách khai báo và sử dụng kiểu kí tự.
Các hàm thao tác trên biến kí tự
Cách nhập và in dữ liệu của xâu kí tự.
Các phương thức thao tác trên xâu kí tự
22 / 22
Một số bài toán trên xâu kí tự