Bài giảng Kỹ thuật lập trình cơ bản (C++) - Chương 6 trang bị cho người học những hiểu biết về con trỏ và chuỗi. Thông qua chương này người học sẽ tìm hiểu một số nội dung cơ bản như: Địa chỉ và toán tử lấy địa chỉ, con trỏ, quy tắc sử dụng con trỏ, chuỗi ký tự, một số thao tác trên chuỗi ký tự,... Mời các bạn cùng tham khảo.
Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Trường Cao đẳng Công nghệ Thông Tin Khoa Công nghệ Thông Tin CHƯƠNG CON TRỎ CHUỖI PHẦN 1: CON TRỎ GV: ThS TRẦN NGUYỄN ANH CHI TpHCM, 02/2011 Địa toán tử lấy địa Biến Liên quan đến biến: tên biến, kiểu biến, giá trị biến Địa biến số thứ tự byte dãy byte mà nhớ cấp phát Để xem địa biến, sử dụng toán tử lấy địa & Ví dụ int a = 5; biến có tên a, thuộc kiểu int có giá trị = địa biến a: &a GV: ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Con trỏ Khái niệm Con trỏ biến dùng để chứa địa Vì có nhiều kiểu biến chứa loại địa khác nhau, nên có nhiều kiểu trỏ khác nhau: kiểu int, kiểu float… Phải khai báo biến trỏ trước sử dụng Cú pháp *; Con trỏ (tt) Ví dụ int x, y, *px, *py, *pz; float z; //x, y biến số nguyên //px, py, pz trỏ kiểu số nguyên //z biến số thực Khi đó, câu lệnh sau có ý nghĩa: px = &x; py = &y; pz = &z; //gán địa biến x cho trỏ px //gán địa biến y cho trỏ py //sai??? GV: ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Quy tắc sử dụng trỏ Sử dụng tên trỏ Con trỏ biến, nên tên trỏ xuất đâu giá trị sử dụng Khi tên trỏ bên trái tốn tử gán, giá trị biểu thức bên phải phải địa để gán cho trỏ Ví dụ: int p = q = w = a, b, &a; p; b; *p, *q, *w; //gán địa biến a cho trỏ p //gán giá trị trỏ p cho trỏ q //sai??? Quy tắc sử dụng trỏ (tt) Sử dụng dạng khai báo trỏ Với khai báo phép gán: int x, y, z, *px, *py; px = &x; //gán địa biến x cho trỏ px py = &y; //gán địa biến y cho trỏ py Khi đó, cách viết x *px tương đương ngữ cảnh y = 3*x + z; *py = 3*x + z; *py = 3*(*px) + z; Kết luận: biết địa biến, khơng sử dụng giá trị nó, mà cịn gán cho giá trị GV: ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Trường Cao đẳng Công nghệ Thông Tin Khoa Công nghệ Thông Tin CHƯƠNG CON TRỎ CHUỖI PHẦN 2: CHUỖI GV: ThS TRẦN NGUYỄN ANH CHI TpHCM, 02/2011 Chuỗi ký tự Khái niệm Kiểu char chứa ký tự Để lưu trữ chuỗi (nhiều ký tự) ta sử dụng mảng (một chiều) ký tự Chuỗi ký tự kết thúc ký tự ‘\0’ (null) Độ dài chuỗi = kích thước mảng – Ví dụ char hoten[30];//chua 29 ky tu char mssv[15]; //chua 14 ký tu GV: ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Chuỗi ký tự (tt) Khai báo Cách 1: char []; Ví dụ: char hoten[30];//chua 29 ky tu char mssv[15]; //chua 14 ký tu Cách 2: char *; = new char; Ví dụ: char *hoten; hoten = new char; Chuỗi ký tự (tt) Khởi tạo Độ dài cụ thể: char s[12] = {„L‟,‟a‟,‟p‟,‟ „,‟t‟,‟r‟,‟i‟,‟n‟,‟h‟,‟\0‟}; char s[12] = “Lap trinh”; //tu dong them „\0‟ ‘L’ ‘a’ ‘p’ ‘ ’ ‘t’ ‘r’ ‘i’ ‘n’ ‘h’ ‘\0’ Tự động xác định độ dài: char s[] = {„L‟,‟a‟,‟p‟,‟ „,‟t‟,‟r‟,‟i‟,‟n‟,‟h‟,‟\0‟}; char s[] = “Lap trinh”; //tu dong them „\0‟ ‘L’ ‘a’ ‘p’ ‘ ’ ‘t’ ‘r’ ‘i’ ‘n’ ‘h’ ‘\0’ 10 GV: ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Chuỗi ký tự (tt) Nhập / xuất chuỗi Sử dụng cách nhập xuất thông thường: cin cout Chỉ nhận ký tự từ bàn phím nhận ký tự khoảng trắng hay ký tự xuống dịng Chuỗi kết khơng bao gồm ký tự khoảng trắng hay xuống dòng 11 Chuỗi ký tự (tt) 12 GV: ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Chuỗi ký tự (tt) Sử dụng hàm gets() puts() Nhận trọn vẹn chuỗi nhập vào 13 Một số thao tác chuỗi ký tự Lấy chiều dài chuỗi int *strlen(char *s) Trả chiều dài chuỗi 14 GV: ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Một số thao tác (tt) Sao chép chuỗi char *strcpy(char *dest, char *source) Sao chép từ chuỗi source vào chuỗi dest 15 Một số thao tác (tt) So sánh chuỗi (không phân biệt hoa/thường) int *strcmp(char *s1, char *s2) So sánh chuỗi s1 s2 16 GV: ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Một số thao tác (tt) Nối chuỗi char *strcat(char *dest, char *source) Nối chuỗi source vào chuỗi dest 17 GV: ThS Trần Nguyễn Anh Chi ... ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Trường Cao đẳng Công nghệ Thông Tin Khoa Công nghệ Thông Tin CHƯƠNG CON TRỎ CHUỖI PHẦN 2: CHUỖI GV: ThS TRẦN NGUYỄN ANH CHI. .. 16 GV: ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Một số thao tác (tt) Nối chuỗi char *strcat(char *dest, char *source) Nối chuỗi source vào chuỗi dest 17 GV: ThS Trần. .. chuỗi ký tự Lấy chi? ??u dài chuỗi int *strlen(char *s) Trả chi? ??u dài chuỗi 14 GV: ThS Trần Nguyễn Anh Chi Kỹ thuật lập trình Chương 6: Con trỏ chuỗi Một số thao tác (tt) Sao chép chuỗi char