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 main() {

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 main() {

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 #include main() {

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ự