Bài giảng Nhập môn lập trình - Bài 6: Xử lý chuỗi và con trỏ cung cấp cho người đọc các kiến thức: Khái niệm và cấu trúc về chuỗi, các hàm nhập xuất chuỗi, một số hàm cơ bản về chuỗi, mảng và chuỗi. Mời các bạn cùng tham khảo nội dung chi tiết.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN Bài 6: Xử Lý Chuỗi & Con trỏ Trung Tâm Tin Học – Ngành Mạng Thiết Bị Di Động TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN Khái niệm cấu trúc chuỗi Các hàm nhập xuất chuỗi Một số hàm chuỗi Mảng chuỗi Trung Tâm Tin Học – Ngành Mạng Thiết Bị Di Động TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN Khái niệm • Chuỗi mảng ký tự kết thúc ký tự null (‘\0’) • Ký tự null (‘\0’) ký tự dùng để kết thúc Chuỗi • Hằng Chuỗi Chuỗi bao quanh cặp dấu nháy đơi Ví dụ: “Hello” • Ví dụ: để khai báo mảng str chứa chuỗi có độ dài 20 ký tự, ta khai báo: char str[21]; Trung Tâm Tin Học – Ngành Mạng Thiết Bị Di Động TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 1 Khai báo khởi tạo Chuỗi Có cách khai báo khởi tạo Chuỗi – Cách 1: Dùng mảng chiều char [Chiều dài tối đa] Ví dụ: char str[12]; Trung Tâm Tin Học – Ngành Mạng Thiết Bị Di Động TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 1 Khai báo khởi tạo Chuỗi Ví dụ: char str[25]; Ý nghĩa khai báo mảng kiểu ký tự tên str có 25 phần tử ( tối đa ta nhập 24 ký phần tử thứ 25 chứa ký tự kết thúc chuỗi ‘\0’ Lưu ý: Chuỗi ký tự kết thúc ký tự ‘\0’ Do khai báo độ dài chuỗi ln khai báo dư phần tử để chứa ký tự ‘\0’ Trung Tâm Tin Học – Ngành Mạng Thiết Bị Di Động TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 1 Khai báo khởi tạo Chuỗi − Cách 2: Dùng trỏ char * •Ví dụ: char *str; Trong khai báo này, nhớ dành byte để lưu trữ địa biến trỏ str đến, chưa cung cấp nơi để lưu trữ liệu Trung Tâm Tin Học – Ngành Mạng Thiết Bị Di Động TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 1 Khai báo khởi tạo Chuỗi − Cách 2: Dùng trỏ Trước sử dụng phải dùng từ khóa new để cấp phát vùng nhớ Ví dụ: char *str; str = new char[51];//Cấp phát 51 ký tự Trung Tâm Tin Học – Ngành Mạng Thiết Bị Di Động TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 1 Khai báo khởi tạo Chuỗi Chuỗi ký tự giống mảng để khởi tạo Chuỗi ký tự với giá trị xác định ta thực tương tự với mảng char [ ]= Trung Tâm Tin Học – Ngành Mạng Thiết Bị Di Động TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 1 Khai báo khởi tạo Chuỗi Ví dụ: char str[] = {‘H’, ’e’, ’l’, ’l’, ’o’, ’\0’}; char str[] = “Hello”; char *str = “Hello”; Trung Tâm Tin Học – Ngành Mạng Thiết Bị Di Động TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 2.1 Nhập Chuỗi Để nhập liệu cho biến Chuỗi, ta dùng hàm gets() thư viện stdio.h char *gets(char *s); Hàm gets() đọc ký tự từ bàn phím vào mảng trỏ đến s nhấn Enter Ký tự null đặt sau ký tự cuối Chuỗi nhập vào mảng Trung Tâm Tin Học – Ngành Mạng Thiết Bị Di Động 10 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN Các hàm thao tác Chuỗi • strchr(s1, ch) : Trả trỏ đến vị trí xuất ký tự ch Chuỗi s1 Ví dụ: void main() { char *p, h, str1[20]; cout>list[i]; } for(int j=0; j