Bài giảng C căn bản - Chương 2: Kỹ thuật xử lý chuỗi

Chuỗi được xem như là một mảng 1 chiều gồm các phần tử có kiểu char như mẫu tự, con số và bất cứ ký tự đặc biệt như +, -, *, /, $, #,

Chuỗi ký tự (string) là một dãy kí tự tuyến tính đặc trưng cho một kiểu dữ liệu. Chuỗi ký tự có thể biểu diễn bằng chuỗi nhị phân.

Chuỗi nhị phân là một dãy bao gồm các ký tự 0 và 1. Chuỗi nhị phân là một kiểu chuỗi ký tự đặc biệt.

 

ppt13 trang | Chuyên mục: C/C++ | Chia sẻ: tuando | Lượt xem: 650 | Lượt tải: 0download
Tóm tắt nội dung Bài giảng C căn bản - Chương 2: Kỹ thuật xử lý chuỗi, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Ch ương 2  Kỹ thuật xử lý Chuỗi 
Chuỗi ký tự 
Chuỗi được xem như là một mảng 1 chiều gồm các phần tử có kiểu char như mẫu tự , con số và bất cứ ký tự đặc biệt như +, -, *, /, $, #, 
Chuỗi ký tự (string) là một dãy kí tự tuyến tính đặc trưng cho một kiểu dữ liệu . Chuỗi ký tự có thể biểu diễn bằng chuỗi nhị phân . 
Chuỗi nhị phân là một dãy bao gồm các ký tự 0 và 1. Chuỗi nhị phân là một kiểu chuỗi ký tự đặc biệt . 
2 
Chuỗi ký tự 
Khởi tạo chuỗi ký tự nh ư mảng thông th ườ ng có độ dài cụ thể : 
	char s[10] = {‘T’, ‘H’, ‘C’, ‘S’, ‘ ’, ‘A’, ‘\0’}; 
	char s[10] = “THCS A”;	// Tự độ ng thêm ký tự ‘\0’ 
Khởi tạo chuỗi ký tự bằng cách tự xác đị nh độ dài : 
	char s[ ] = {‘T’, ‘H’, ‘C’, ‘S’, ‘ ’, ‘A’, ‘\0’}; 
	char s[ ] = “THCS A”;	// Tự độ ng thêm ký tự ‘\0’ 
Độ dài chuỗi = kích th ướ c mảng – 1, ví dụ : 
	char hoten[30];	// Dài 29 ký tự 
	char ngaysinh[9];	// Dài 8 ký tự 
3 
Chuỗi ký tự 
Ví dụ : Sử dụng hàm strcpy 
#include 
#include 
int main () 
{ 
	char szMyName [20]; 
	 strcpy ( szMyName,"J . Soulie "); 
	 cout << szMyName ;	 
return 0; 
} 
4 
Chuỗi ký tự 
Ví dụ:Tạo giá trị cho chuỗi ký tự 
#include 
void setstring (char szOut [], char szIn []) 
{ int n=0; do 
	{	szOut[n] = szIn[n]; 
 	n++; 
	} while (szIn[n] != 0); 
} 
int main () 
{ 	char szMyName [20];	 
	setstring (szMyName,"J. Soulie"); 
 	cout << szMyName; 	 return 0; 
} 
5 
Chuỗi ký tự 
Ví dụ : Sử dụng hàm strcpy 
#include 
#include 
int main () 
{ 
	char szMyName [20]; 
	 strcpy ( szMyName,"J . Soulie "); 
	 cout << szMyName ;	 
return 0; 
} 
6 
Chuỗi ký tự 
Sử dụng cin.getline 
#include 
int main () 
{ 
	char mybuffer [100]; 
	 cout << "What's your name? "; 
	 cin.getline (mybuffer,100); 
	 cout << "Hello " << mybuffer << ".\n"; 
	 cout << "Which is your favourite team? "; 
	 cin.getline (mybuffer,100); 
	 cout << "I like " << mybuffer << " too.\n"; 
	return 0; 
} 
7 
Chuỗi ký tự 
atoi : chuyển chuỗi ký tự thành kiểu int . 
atol : chuyển chuỗi ký tự thành kiểu long . 
atof : chuyển chuỗi ký tự thành kiểu float . 
8 
Chuỗi ký tự 
char* strcat (char* dest , const char* src ); 
	 Gắn thêm chuỗi src vào phía cuối của dest . Trả về dest . 
int strcmp (const char* string1 , const char* string2 ); So sánh hai xâu string1 và string2 . Trả về 0 nếu hai xâu là bằng nhau . 
char* strcpy (char* dest , const char* src ); 
	Copy nội dung của src cho dest . Trả về dest . 
size_t strlen (const char* string ); 
	 Trả về độ dài của string . 
9 
Chuỗi ký tự 
char * strdup(const char *s); 
	 Tạo bản sao của một chuỗi s cho tr ướ c. Hàm sẽ tự tạo vùng nhớ dài strlen(s ) + 1 (bytes) để chứa chuỗi s. Phải tự hủy vùng nhớ này khi không sử dụng nữa . Nếu thành công trả về con trỏ đến vùng nhớ chứa chuỗi bản sao . Ngược lại , trả về NULL. 
char * strlwr(char *s) 
	 Chuyển chuỗi s thành chuỗi th ườ ng . 
char * strupr(char *s) 
	 Chuyển chuỗi s thành chuỗi in hoa . 
char * strrev(char *s) 
	 Đảo ng ượ c thứ tự các ký tự trong chuỗi s ( trừ ký tự kết thúc chuỗi ). 
10 
Chuỗi ký tự 
Hạn chế của kiểu chuỗi trong C 
Phải chủ động kiểm soát bộ nhớ cấp phát cho chuỗi ký tự 
Không thể gán giá trị hay sử dụng phép toán + ( ghép chuỗi ) và các phép toán so sánh như : > ( lớn hơn ), . 
Kiểu chuỗi string trong thư viện STL của C++ 
	 Thư viện chuẩn STL (Standard Template Library) của C++ có hỗ trợ kiểu string cùng với các phép toán và phương thức khá tiện lợi cho người lập trình . 
11 
Chuỗi ký tự 
Hạn chế của kiểu chuỗi trong C 
Phải chủ động kiểm soát bộ nhớ cấp phát cho chuỗi ký tự 
Không thể gán giá trị hay sử dụng phép toán + ( ghép chuỗi ) và các phép toán so sánh như : > ( lớn hơn ), . 
Kiểu chuỗi string trong thư viện STL của C++ 
	 Thư viện chuẩn STL (Standard Template Library) của C++ có hỗ trợ kiểu string cùng với các phép toán và phương thức khá tiện lợi cho người lập trình . 
12 
Q&A 
13 

File đính kèm:

  • pptbai_giang_c_can_ban_chuong_2_ky_thuat_xu_ly_chuoi.ppt