
Bài giảng Kỹ thuật lập trình - Chương 7: Chuỗi ký tự
lượt xem 4
download

Bài giảng "Kỹ thuật lập trình - Chương 7: Chuỗi ký tự" cung cấp cho người học các kiến thức: Giới thiệu Chuỗi, khai báo và khởi tạo chuỗi, nhập chuỗi, xuất chuỗi, một số hàm thư viện thao tác trên chuỗi, một số ví dụ về chuỗi,... Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình - Chương 7: Chuỗi ký tự
- Chương 7 CHUỖI KÝ TỰ
- Nội dung 1. Giới thiệu Chuỗi 2. Khai báo và khởi tạo chuỗi 3. Nhập chuỗi 4. Xuất chuỗi 5. Một số hàm thư viện thao tác trên chuỗi. 6. Một số ví dụ về chuỗi 7. Mảng các chuỗi 8. Mảng con trỏ đến các chuỗi
- Giới thiệu chuỗi Một chuỗi ký tự (chuỗi) là mảng một chiều các ký tự được kết thúc bởi ký tự NULL (\0). Số lượng các ký tự khác NULL trong chuỗi gọi là chiều dài của chuỗi. Ghi chú: Như mảng 1 chiều, tên chuỗi ký tự cũng được xem là một hằng địa chỉ biểu thị địa chỉ của phần tử đầu tiên.
- Khai báo và khởi tạo chuỗi Khai báo char [độ dài] ; // không khởi tạo char [độ dài] = chuỗi ký tự ; // có khởi tạo char [] = chuỗi ký tự ; // có khởi tạo Độ dài mảng là số kí tự tối đa có thể có trong chuỗi tính từ đầu mảng đến dấu kết thúc chuỗi (không kể dấu kết thúc chuỗi ‘\0’). Độ dài tối đa của chuỗi = độ dài mảng 1. Ví dụ: char hoten[26] ; // chuỗi họ tên chứa tối đa 25 kí tự char monhoc[31] = "NNLT C++" ; char thang[] = "Mười hai" ; // độ dài mảng = 9 char *str = “Hello”; //Dùng con trỏ
- Cách sử dụng chuỗi ký tự Truy cập một kí tự trong chuỗi: cú pháp giống như mảng. char s[50] = "I\'m a student" ; // chú ý kí tự ' phải được viết là \' cout > s ; cout
- Nhập chuỗi ký tự Phương thức nhập chuỗi (#include ) Dùng hàm cin.getline(s,n) để nhập chuỗi kí tự. Hàm có 2 đối số với s là chuỗi cần nhập nội dung và n1 là số kí tự tối đa của chuỗi. Ví dụ 1 : Xét đoạn lệnh sau char s[10] ; cin.getline(s, 10) ; cout
- Nhập chuỗi ký tự Phương thức nhập chuỗi (#include ) Dùng hàm gets() của thư viện stdio.h. Hàm này có cú pháp sau: char *gets(char *s); Hàm gets() đọc các ký tự từ bàn phím (stdio.h) vào trong mảng trỏ đến bởi s cho đến khi nhấn Enter. Ký tự null sẽ được đặt sau ký tự cuối cùng của chuỗi nhập vào trong mảng. Hoặc ta có thể dùng cin (Console INput). Cú pháp như s sau: cin >> s Ví dụ 1 : Xét đoạn lệnh sau char s[10] ; gets(s) ;
- Nhập chuỗi ký tự Ví dụ 2 : Nhập một ngày tháng dạng Mỹ (mm/dd/yy), đổi sang ngày tháng dạng Việt Nam rồi in ra màn hình. #include main() { char US[9], VN[9]; // khởi tạo trước hai dấu / cin.getline(US, 9) ; // nhập ngày tháng, ví dụ "05/01/99“ gets(US); VN[0] = US[3]; VN[1] = US[4] ; // ngày VN[3] = US[0]; VN[4] = US[1] ; // tháng VN[6] = US[6]; VN[7] = US[7] ; // năm cout
- Xuất chuỗi ký tự Dùng hàm puts() của thư viện stdio.h. Hàm này có cú pháp sau: int puts(const char *s); Hoặc ta có thể dùng cout (Console OUTput). Cú pháp như sau: cout
- Xuất chuỗi ký tự Ví dụ: Nhập một ngày tháng dạng Mỹ (mm/dd/yy), đổi sang ngày tháng dạng Việt Nam rồi in ra màn hình. #include main() { char US[9], VN[9] = " / / " ; // khởi tạo trước hai dấu / cin.getline(US, 9) ; // nhập ngày tháng, ví dụ "05/01/99“ gets(US); VN[0] = US[3]; VN[1] = US[4] ; // ngày VN[3] = US[0]; VN[4] = US[1] ; // tháng VN[6] = US[6]; VN[7] = US[7] ; // năm cout
- Xuất chuỗi ký tự Ví dụ: Nhập một ngày tháng dạng Mỹ (mm/dd/yy), đổi sang ngày tháng dạng Việt Nam rồi in ra màn hình. #include main() { char US[9], VN[9] = " / / " ; // khởi tạo trước hai dấu / cin.getline(US, 9) ; // nhập ngày tháng, ví dụ "05/01/99“ gets(US); VN[0] = US[3]; VN[1] = US[4] ; // ngày VN[3] = US[0]; VN[4] = US[1] ; // tháng VN[6] = US[6]; VN[7] = US[7] ; // năm cout
- Hàm và chuỗi ký tự Hàm không thể trả về một giá trị là chuỗi ký tự. Đối của hàm có thể là tên chuỗi ký tự, khi đó tham số thực phải là tên chuỗi ký tự Đối Tham số thực Chuỗi ký tự Tên chuỗi ký tự Ví dụ: Viết hàm trả về chiều dài xâu ký tự Input s Output l(s) int ChieuDai(char s[MAX]) { int l = 0; while (s[l] != NULL) l++; return l; }
- Hàm và chuỗi ký tự Ví dụ 16 : Viết hàm đảo ngược xâu ký tự s, kết quả lưu trữ lại vào s. Input s Output s void DaoNguoc(char s[MAX]) { int i, j, h; char Tam; h = ChieuDai(s); for(i = 0, j = h1; i
- Hàm và chuỗi ký tự Sử dụng hàm trên bằng chương trình sau : #include #include #include #define MAX 80 void DaoNguoc(char s[MAX]) ; void ChieuDai(char s[MAX]) ; int main() { char s[MAX]; clrscr(); cout
- Con trỏ và chuỗi ký tự Chuỗi ( string ) là một dãy các kí tự liên tiếp trong bộ nhớ được kết thúc bằng kí tự NUL (‘\0’). Như vậy để sử dụng biến chuỗi chứa MAX kí tự, ta khai báo như sau: char s[MAX+1]; Ta cũng có thể khai báo biến chuỗi như sau: char* s; Có thể khởi tạo biến chuỗi như sau: char s[ ] = “Hello C++”;
- Con trỏ và chuỗi ký tự Hàm nhập chuỗi của đối tượng cin: // đọc các kí tự tự cin vào s, kể cả kí tự khoảng trắng. getline( char* s, int size, char delim=’\n’ ); read( char* s, int size ); // cin.read( s, 5 ); // cho phép đọc từng kí tự từ cin vào trong ch và trả về trị 1. Hàm trả về trị 0 nếu gặp kí tự ‘\n’. get( char ch ); Hàm xuất chuỗi của đối tượng cout: put( char ); // cout.put( ch ).put( ch ); write( const char* s, int size ); // cout.write( s, 1 ).write( s+1, 2);
- Con trỏ và chuỗi ký tự Một số hàm thông dụng khai báo trong cho phép thao tác, xữ lý chuỗi tí tự: size_t strlen( const char* s ); int strcmp( const char* s1, const char* s2 ); int strcmpi( const char* s1, const char* s2 ); char* strcpy( char* dest, const char* src ); char* strcat( char* dest, const char* src );
- Các hàm thư viện xử lý chuỗi ký tự Một số hàm xử lí chuỗi (#include ) 1. strcpy(s, t) : Hàm sẽ sao chép toàn bộ nội dung của chuỗi t (kể cả kí tự kết thúc chuỗi) vào cho chuỗi s. Để sử dụng hàm này cần đảm bảo độ dài của mảng s ít nhất cũng bằng độ dài của mảng t. Ví dụ: char s[10], t[10] ; t = "Face" ; // không được dùng s = t ; // không được dùng strcpy(t, "Face") ; // được, gán "Face" cho t strcpy(s, t) ; // được, sao chép t sang s cout
- Các hàm thư viện xử lý chuỗi ký tự 2. strncpy(s, t, n) : Sao chép n kí tự của t vào s. Hàm này chỉ làm nhiệm vụ sao chép, không tự động gắn kí tự kết thúc chuỗi cho s. Do vậy người sử dụng phải thêm câu lệnh đặt kí tự '\0' vào cuối chuỗi s sau khi sao chép xong. Ví dụ: char s[10], t[10] = "Steven"; strncpy(s, t, 5) ; // copy 5 kí tự "Steve" vào s s[5] = '\0' ; // đặt dấu kết thúc chuỗi // in câu: Steve is young brother of Steven cout
- Các hàm thư viện xử lý chuỗi ký tự 3. strcat(s, t); Nối một bản sao của t vào sau s. Hàm sẽ loại bỏ kí tự kết thúc chuỗi s trước khi nối thêm t. Việc nối sẽ đảm bảo lấy cả kí tự kết thúc của chuỗi t vào cho s (nếu s đủ chỗ) vì vậy NSD không cần thêm kí tự này vào cuối chuỗi. Hàm không kiểm tra xem liệu độ dài của s có đủ chỗ để nối thêm nội dung, việc kiểm tra này phải do NSD đảm nhiệm. Ví dụ: char a[100] = "Mẫn", b[4] = "tôi"; strcat(a, “ và ”); strcat(a, b); cout

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p |
35 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p |
35 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang
28 p |
40 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
37 p |
40 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p |
33 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p |
38 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p |
39 |
2
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 1) - ThS. Đặng Bình Phương
26 p |
24 |
0
-
Bài giảng Kỹ thuật lập trình: Các kỹ thuật thao tác trên bit - ThS. Đặng Bình Phương
29 p |
29 |
0
-
Bài giảng Kỹ thuật lập trình: Tập tin - ThS. Đặng Bình Phương
48 p |
27 |
0
-
Bài giảng Kỹ thuật lập trình: Kỹ thuật lập trình đệ quy - ThS. Đặng Bình Phương
44 p |
29 |
0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu cấu trúc - ThS. Đặng Bình Phương
33 p |
27 |
0
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Đặng Bình Phương
20 p |
29 |
0
-
Bài giảng Kỹ thuật lập trình: Danh sách liên kết - ThS. Đặng Bình Phương
20 p |
26 |
0
-
Bài giảng Kỹ thuật lập trình: Chuyển đổi kiểu dữ liệu và cấp phát bộ nhớ động - ThS. Đặng Bình Phương
28 p |
29 |
0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Nâng cao) - ThS. Đặng Bình Phương
48 p |
30 |
0
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - ThS. Đặng Bình Phương
7 p |
29 |
0
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 2) - ThS. Đặng Bình Phương
30 p |
20 |
0


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
