Chuỗi ký tự
Có 2 cách khai báo chuỗi ký tự:
Khai báo mảng 1 chiều
char chuoi[20];
Dùng biến con trỏ
char* chuoi;
Khai báo chuỗi ký tự dùng mảng
Để chứa một chuỗi gồm n ký tự thì phải khai
báo biến mảng gồm n+1 phần tử:
Ví dụ: char chuoi[11];
Biến chuoi trên sẽ chứa được một chuỗi ký tự
gồm 10 ký tự.
Hình ảnh trong bộ nhớ:
Khai báo chuỗi ký tự dùng mảng
Để chứa một chuỗi gồm n ký tự thì phải khai
báo biến mảng gồm n+1 phần tử:
Ví dụ: char chuoi[11];
Biến chuoi trên sẽ chứa được một chuỗi ký tự
gồm 10 ký tự.
20 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 455 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Kiểu chuỗi và các xử lý trên chuỗi - Nguyễn Đông Hà, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Kiểu chuỗi và các xử
lý trên chuỗi
Nguyễn Đông Hà
Khoa CNTT – ĐH KHTN
Sưu tầm bởi: www.daihoc.com.vn
Nội dung
Cách khai báo kiểu ký tự và chuỗi ký tự
Cách khởi tạo và gán giá trị
Cách xuất chuỗi ký tự và nhập chuỗi ký tự
Sưu tầm bởi: www.daihoc.com.vn
Các khái niệm
Character là 1 ký tự, ví dụ: ‘a’, ‘b’, ‘+’, ‘1’
String là 1 chuỗi các ký tự, ví dụ: ‘abc’, ‘chao
ban’, ‘1 + 2’
Sưu tầm bởi: www.daihoc.com.vn
Khai báo
/* Khai báo 3 biến kiểu ký tự */
char a, b, c;
/* Khai báo biến code thuộc kiểu ký tự,
khởi gán giá trị cho code là ký tự x */
char code = `x';
/* Gán lại ký tự ! vào biến code*/
code = `!';
Sưu tầm bởi: www.daihoc.com.vn
Ví dụ
/* Khai bao bien c1, c2 kieu char */
char c1, c2;
/* Gan gia tri cho c1 va c2 */
c1 = 'a';
c2 = 90;
/* Xuat gia tri c1,c2 duoi dang ky tu
va dang ma ascii */
printf(" Dang ky tu, c1 la %c\n", c1);
printf(" Dang ma ascii,c1 la %d\n", c1);
Sưu tầm bởi: www.daihoc.com.vn
Kết quả hiển thị trên màn hình
Duoi dang ky tu, c1 la a
Duoi dang ma ascii, c1 la 97
Duoi dang ky tu, c2 la z
Duoi dang ma ascii, c2 la 90
Sưu tầm bởi: www.daihoc.com.vn
Ghi nhớ
Để xuất biến kiểu char dưới dạng ký tự, dùng
%c
Để xuất biến kiểu char dưới dạng số, dùng %d
Sử dụng dấu nháy đơn để gán giá trị cho biến
kiểu char
Sưu tầm bởi: www.daihoc.com.vn
Chuỗi ký tự
Có 2 cách khai báo chuỗi ký tự:
Khai báo mảng 1 chiều
char chuoi[20];
Dùng biến con trỏ
char* chuoi;
Sưu tầm bởi: www.daihoc.com.vn
Khai báo chuỗi ký tự dùng mảng
Để chứa một chuỗi gồm n ký tự thì phải khai
báo biến mảng gồm n+1 phần tử:
Ví dụ: char chuoi[11];
Biến chuoi trên sẽ chứa được một chuỗi ký tự
gồm 10 ký tự.
Hình ảnh trong bộ nhớ:
Sưu tầm bởi: www.daihoc.com.vn
Khai báo chuỗi ký tự dùng mảng
Để chứa một chuỗi gồm n ký tự thì phải khai
báo biến mảng gồm n+1 phần tử:
Ví dụ: char chuoi[11];
Biến chuoi trên sẽ chứa được một chuỗi ký tự
gồm 10 ký tự.
Hình ảnh trong bộ nhớ:
‘\0’
Sưu tầm bởi: www.daihoc.com.vn
Gán giá trị chuỗi ký tự
chuoi[10] = “chao ban” ; /* SAI !!! */
strcpy(chuoi, “chao ban”);
Hình ảnh trong bộ nhớ
‘c’‘h’‘a’‘o’ ‘\0’‘n’‘a’‘b’‘ ’
Phải dùng hàm strcpy để gán giá trị cho chuỗi
ký tự
Sưu tầm bởi: www.daihoc.com.vn
Khai báo mảng không có kích thước
Khai báo để kích thước mảng qui định bởi giá
trị khởi gán
char chuoi[ ] = “chao ban” ;
Hình ảnh trong bộ nhớ: chỉ có 9 phần tử
‘c’‘h’‘a’‘o’ ‘\0’‘n’‘a’‘b’‘ ’
Sưu tầm bởi: www.daihoc.com.vn
Chuỗi ký tự dùng biến con trỏ
Khai báo:
char* chuoi;
Gán giá trị:
Trước khi sử dụng phải xin cấp phát bộ nhớ bằng
hàm malloc:
chuoi = malloc(11);
strcpy(chuoi, “chao ban”);
Phải dùng hàm strcpy để gán giá trị cho chuỗi
ký tự
Sưu tầm bởi: www.daihoc.com.vn
Xuất và nhập chuỗi ký tự
Xuất chuỗi ký tự: có thể dùng hàm printf hoặc
puts
Nhập chuỗi ký tự: dùng hàm gets, không dùng
scanf
printf("Chuoi s1 la %s\n", s1);
puts("Chuoi s1 la ”);
puts(s1);
gets(s1);
Sưu tầm bởi: www.daihoc.com.vn
Chương trình hoàn chỉnh
/* Khai bao s1, s2 */
char s1[100];
char* s2;
/* Gan gia tri cho s1 va s2 */
strcpy(s1, "Chao ban");
/* Phai xin cap phat bo nho bang ham
malloc truoc khi su dung s2 */
s2 = malloc(100);
strcpy(s2, "Chao ban");
Sưu tầm bởi: www.daihoc.com.vn
Chương trình hoàn chỉnh
/* Xuat gia tri s1,s2 */
printf("Chuoi s1 la %s\n", s1);
printf("Chuoi s2 la %s\n", s2);
/* Nhap gia tri tu ban phim */
printf("Nhap gia tri s1 tu ban phim: ");
gets(s1);
puts("Chuoi s1 la ");
puts(s1);
Sưu tầm bởi: www.daihoc.com.vn
Kết quả
Chuoi s1 la chao ban
Chuoi s2 la chao ban
Nhap gia tri s1 tu ban phim: hello
Chuoi s1 la hello
Sưu tầm bởi: www.daihoc.com.vn
Ghi nhớ
Phải xin cấp phát bộ nhớ bằng hàm malloc nếu
sử dụng biến con trỏ để khai báo kiểu chuỗi ký
tự
Phải dùng hàm strcpy để gán giá trị cho chuỗi
ký tự, không dùng dấu “=”
Khai báo thư viện stdlib.h để dùng hàm malloc
và hàm strcpy
Dùng hàm gets để nhập chuỗi ký tự từ bàn
phím: gets(s);
Sưu tầm bởi: www.daihoc.com.vn
Các hàm xử lý trên chuỗi ký tự
Xem sách giáo trình lập trình C, chương 4,
trang 51
Sưu tầm bởi: www.daihoc.com.vn
Sưu tầm bởi: www.daihoc.com.vn
Các file đính kèm theo tài liệu này:
- bai_giang_kieu_chuoi_va_cac_xu_ly_tren_chuoi_nguyen_dong_ha.pdf