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