Ki ể u chu ỗ iv à c á cx ử lý trên chu ỗ i

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Kiểu chuỗi và các xử

lý trên chuỗi
Nguyễn Đông Hà
Khoa CNTT – ĐH KHTN

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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ự

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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’…

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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 = `!';

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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);

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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;

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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ớ:

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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’

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Gán giá trị chuỗi ký tự
„ Phải dùng hàm strcpy để gán giá trị cho chuỗi
ký tự

chuoi[10] = “chao ban” ; /* SAI !!! */


strcpy(chuoi, “chao ban”);

„ Hình ảnh trong bộ nhớ

‘c’‘h’‘a’‘o’‘ ’‘b’‘a’‘n’ ‘\0’

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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’‘ ’‘b’‘a’‘n’
‘\0’

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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);
„ Phải dùng hàm strcpy để gán giá trị cho chuỗi
ký tự
strcpy(chuoi, “chao ban”);

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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
printf("Chuoi s1 la %s\n", s1);

puts("Chuoi s1 la ”);
puts(s1);

„ Nhập chuỗi ký tự: dùng hàm gets, không dùng


scanf
gets(s1);

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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");

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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);

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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);

CuuDuongThanCong.com https://fb.com/tailieudientucntt
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

CuuDuongThanCong.com https://fb.com/tailieudientucntt
CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like