1. Trang chủ
  2. » Thể loại khác

Slide cslt1 - le_cam_tu_hvnh ď C07-Xau ki tu

21 175 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Slide 1

  • Nội dung

  • 1. Khai báo

  • Khai báo có khởi tạo giá trị

  • 2. Các thao tác trên xâu kí tự

  • a) Nhập xâu từ bàn phím

  • a) Nhập xâu từ bàn phím (tt)

  • b) Xuất xâu ra màn hình

  • c) Xác định độ dài xâu

  • c) Xác định độ dài xâu (tt)

  • d) Ghép xâu

  • e) Sao chép xâu

  • f) So sánh xâu kí tự

  • f) So sánh xâu kí tự (tt)

  • g) Tìm kiếm kí tự

  • 3. Mảng xâu kí tự

  • Mảng xâu kí tự (tt)

  • 4. Một số hàm xử lý xâu kí tự

  • Một số hàm xử lý xâu kí tự (tt)

  • Bài tập thực hành

  • Bài tập thực hành

Nội dung

Chương XÂU KÍ TỰ Hà Nội – 2014 Nội dung 12/12/17 Khai báo Các thao tác xâu kí tự Mảng xâu kí tự Một số hàm xử lý xâu kí tự Chương - Xâu kí tự 2/21 Khai báo  Khái niệm  Xâu kí tự C xây dựng mảng chiều kí tự  Xâu kí tự kết thúc kí tự ‘\0’ (kí tự NULL bảng mã ASCII)  Độ dài tối đa xâu= kích thước mảng –  Khai báo nên dành nhớ để chứa kí tự ‘\0’  Ví dụ char line[80]; // Dài tối đa 79 kí tự char hoten[30]; // Dài tối đa 29 kí tự 12/12/17 Chương - Xâu kí tự 3/21 Khai báo có khởi tạo giá trị  Độ dài cụ thể char string[40]="Ngon ngu C";   Khởi tạo xâu kí tự có độ dài tối đa 39 kí tự với giá trị ban đầu xâu “Ngon ngu C” Tự xác định độ dài char str[]=“Ngon ngu C”;   Chương trình dịch tự bố trí mảng để chứa dãy kí tự chứa kí hiệu ‘\0’ Chú ý:  Khai báo xâu kí tự với trỏ char *message; message=“Xin chao!”; 12/12/17 Chương - Xâu kí tự 4/21 Các thao tác xâu kí tự         12/12/17 Nhập xâu từ bàn phím Xuất xâu hình Xác định độ dài xâu Ghép xâu Sao chép xâu So sánh xâu Tìm kiếm kí tự … Chương - Xâu kí tự 5/21 a) Nhập xâu từ bàn phím  Sử dụng hàm scanf với đặc tả “%s” scanf(“%s”,str);   Chỉ nhận kí tự từ bàn phím đến gặp kí tự dấu cách, tab, kí tự xuống dòng  Xâu nhận khơng bao gồm dấu cách Ví dụ: char monhoc[50]; printf(“Nhap mot xau ki tu: “); scanf(“%s”, monhoc); printf(“Xau nhan duoc la: %s”, monhoc); Nhap mot chuoi: Ngon ngu lap trinh C Chuoi nhan duoc la: Ngon 12/12/17 Chương - Xâu kí tự _ 6/21 a) Nhập xâu từ bàn phím (tt)  Sử dụng hàm gets gets(str);   Nhận kí tự từ bàn phím đến gặp kí tự xuống dòng  Xâu nhận người dùng nhập (trừ kí tự xuống dòng) Ví dụ char monhoc[50]; printf(“Nhap mot chuoi: “); gets(monhoc); printf(“Chuoi nhan duoc la: %s”, monhoc); Nhap mot chuoi: Ngon ngu lap trinh C Chuoi nhan duoc la: Ngon ngu lap trinh C 12/12/17 Chương - Xâu kí tự _ 7/21 b) Xuất xâu hình  Sử dụng hàm printf với đặc tả “%s” char monhoc[50] = “Ngon ngu C”; printf(“%s”, monhoc); Ngon ngu C  _ Sử dụng hàm puts char monhoc[50] = “Ngon ngu C”; puts(monhoc); Ngon ngu C _ _  printf(“%s\n”, monhoc); 12/12/17 Chương - Xâu kí tự 8/21 c) Xác định độ dài xâu  Tự xác định Đếm gặp kí tự ‘\0’ char str[]=“Ngon ngu C“; int dem=0; while (str[dem]!='\0') dem++; printf("Do dai xau la: %d ki tu",dem);  Sử dụng trỏ để xử lí xâu char *message; message="Ngon ngu C"; int dem=0; while (*message!='\0'){*message++;dem++;} printf("Do dai xau la: %d ki tu",dem); 12/12/17 Chương - Xâu kí tự 9/21 c) Xác định độ dài xâu (tt)  Dùng hàm Hàm strlen(str) thư viện string.h printf("Do dai xau la:%d",strlen(str));  Bài tập: Nhập từ bàn phím xâu st1, viết hình xâu theo chiều ngược lại Nhập từ bàn phím xâu st2, chuyển xâu st2 sang chữ hoa viết hình xâu kết hình 12/12/17 Chương - Xâu kí tự 10/21 d) Ghép xâu  Ghép xâu st2 vào sau xâu st1  Hàm strcat(st1,st2): nối xâu st2 vào sau xâu st1 #include #include #define maxst 40 main() { char st1[maxst]="Chao mung"; char st2[maxst]="Ngon ngu C"; if (maxst>strlen(st1)+strlen(st2)) puts(strcat(st1,st2)); else printf("Khong du bo nho!"); }  12/12/17 Chú ý: khơng viết st=st1+st2; Chương - Xâu kí tự 11/21 e) Sao chép xâu  C không cho phép gán xâu cho biến xâu kí tự mảng  Ví dụ: Khơng viết line=“Hello”;  Dùng hàm chép xâu viết vòng lặp chép kí tự   Hàm chép xâu  strcpy(st1,st2) – gán xâu st2 cho xâu st1  Ví dụ: strcpy(line,”Hello”); Chú ý:  Hàm khơng kiểm tra tính đắn kích thước nhớ st1 có đủ chứa st2 hay khơng, đó, cần lưu ý kích thước xâu kí tự 12/12/17 Chương - Xâu kí tự 12/21 f) So sánh xâu kí tự  Quy tắc so sánh    Các kí tự xâu so sánh cặp từ trái qua phải theo giá trị mã ASCII Hàm strcmp(st1,st2) thư viện string.h  Trả st1==st2  st2 Ví dụ: Nhập xâu nhập xâu “done” char st[80]; { gets(st); printf("Xau vua nhap: %s \n",st); } 12/12/17 while (strcmp(st,"done")); Chương - Xâu kí tự 13/21 f) So sánh xâu kí tự (tt)  Một số hàm so sánh khác  stricmp(st1,st2); so sánh xâu st1 với st2 không phân biệt chữ hoathường  strncmp(st1,st2,n); so sánh n kí tự st1 st2  strnicmp(st1,st2,n); so sánh n kí tự st1 st2 khơng phân biệt chữ hoa-thường 12/12/17 Chương - Xâu kí tự 14/21 g) Tìm kiếm kí tự  Hàm strchr(str,c) tìm kiếm kí tự c xâu str  Kết trỏ trỏ tới vị trí kí tự c  Nếu khơng tìm thấy trả NULL char str[80]; char c; printf("Nhap xau: ");gets(str); printf("Nhap ki tu can tim: "); c=getchar(); if (strchr(str,c)) printf("Tim thay %c"); else printf("Khong tim thay!");  12/12/17 Hàm strstr(str1,str2) tìm kiếm xâu str2 xâu str1  Kết trỏ trỏ tới vị trí xâu str2  Nếu khơng tìm thấy trả NULL Chương - Xâu kí tự 15/21 Mảng xâu kí tự  Bài tốn:  Nhập mảng xâu kí tự, xếp xâu theo thứ tự từ điển  Sử dụng mảng chiều để lưu xâu kí tự void sapxep(int n,char x[][80]) { char temp[80]; int i,j; for (i=0;i

Ngày đăng: 09/12/2017, 02:55

TỪ KHÓA LIÊN QUAN

w