Bài giảng Tin học đại cương - Bài 6: Xâu ký tự

37 74 0
Bài giảng Tin học đại cương - Bài 6: Xâu ký tự

Đ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

Nội dung bài giảng trình bày khái niệm xâu ký tự; khai báo và sử dụng xâu; một số hàm làm việc với ký tự và xâu ký tự trong C. Mời các bạn cùng tham khảo bài giảng Tin học đại cương - Bài 6: Xâu ký tự để nắm chi tiết nội dung.

KHOA CÔNGNGHệ THÔNGTIN FACULTYOF INFORMATION TECHNOLOGY TIN HC I CNG PHẦN 2: LẬP TRÌNH BẰNG NGƠN NGỮ C BÀI 6: XÂU KÝ TỰ BÀI 6: XÂU KÝ TỰ 6.1 Khái niệm xâu ký tự 6.2 Khai báo sử dụng xâu 6.3 Một số hàm làm việc với ký tự xâu ký tự C     6.3.1 Các hàm xử lý ký tự 6.3.2 Các hàm xử lý xâu ký tự 6.3.3 Một số hàm xử lý xâu ký tự khác 6.3.4 Con trỏ xâu ký tự Nguyễn Thị Thu Trang, SE-FIT-HUT 6.1 Khái niệm xâu ký tự Là dãy kí tự viết liên tiếp Xâu rỗng: Xâu không gồm kí tự Độ dài xâu: Số kí tự có xâu Ví dụ:  “Tin hoc” xâu kí tự gồm kí tự: ‘T’, ‘i’, ‘n’, dấu cách (‘ ‘), ‘h’, ‘o’, ‘c’ Lưu trữ xâu ký tự:  Ký tự kết thúc xâu: NULL ’\0’ Nguyễn Thị Thu Trang, SE-FIT-HUT BÀI 6: XÂU KÝ TỰ 6.1 Khái niệm xâu ký tự 6.2 Khai báo sử dụng xâu 6.3 Một số hàm làm việc với ký tự xâu ký tự C     6.3.1 Các hàm xử lý ký tự 6.3.2 Các hàm xử lý xâu ký tự 6.3.3 Một số hàm xử lý xâu ký tự khác 6.3.4 Con trỏ xâu ký tự Nguyễn Thị Thu Trang, SE-FIT-HUT 6.2.1 Khai báo xâu ký tự Cú pháp:  char ten_xau [so_ky_tu_toi_da]; Ví dụ:  char ho_va_ten[20]; Nguyễn Thị Thu Trang, SE-FIT-HUT 6.2.1 Khai báo xâu ký tự (2) Ví dụ:  Khai báo xâu ký tự s có độ dài tối đa 30: char s[30];  Khởi tạo giá trị cho xâu ký tự khai báo: char s[15] = {‘T', ‘r', ‘u', ‘o', ‘n', ‘g', ‘ ’, ‘D', ‘H’, ‘B', ‘K’, ‘\0' }; char s[15] = “Truong DHBK”; /*trinh dich tu them \0 vao cuoi xau */ char s[] = “Truong DHBK”;/* trinh dich tu tinh chieu dai xau = 12 */ Nguyễn Thị Thu Trang, SE-FIT-HUT 6.2.2 Truy cập vào phần tử xâu Cú pháp:  ten_xau[chi_so_ky_tu_can_truy_cap] Ví dụ:  char que_quan[10] = “Ha noi”; Nguyễn Thị Thu Trang, SE-FIT-HUT 6.2.3 Nhập/xuất xâu ký tự Nhập xâu:  Sử dụng scanf Cú pháp: scanf(“%s”,biến_xâu_kt); char str[10]; scanf(“%s”,str); //không cần &str Nếu người dùng nhập xâu có dấu cách phần ký tự nằm trước dấu cách nhập cho xâu ký tự (vd: ví dụ trên, nhập xâu “Viet Nam” gõ Enter s = “Viet” Phần lại đẩy vào đệm)  Sử dụng gets Cú pháp: gets(s); Nhập xâu ký tự có dấu cách Xuất xâu hình: printf(“%s”,str) puts(str) Nguyễn Thị Thu Trang, SE-FIT-HUT 6.2.3 Nhập/xuất xâu ký tự - gets() & printf() /* Minh hoa cach su dung gets() & printf() */ #include #include void main() { char ten[80]; printf("\nXin cho biet ten cua ban : "); gets(ten); printf("Chao %s\n", ten); getch(); } Nguyễn Thị Thu Trang, SE-FIT-HUT 6.2.3 Nhập/xuất xâu ký tự - scanf() & puts() /* Minh hoa cach su dung scanf() & puts() */ #include char ho[81], ten[81]; int count, soTheSV; void main() { puts(“Hay nhap ho, ten va so the SV cach boi"); puts(" dau cach roi go Enter "); count = scanf("%s%s%d", ho, ten, &soTheSV); printf("%d muc vua nhap: %s %s %d \n", count, ho, ten, soTheSV); getch(); } Nguyễn Thị Thu Trang, SE-FIT-HUT 10 Kiểm tra tính đối xứng Sửa chương trình thành hàm doiXung   Trả không đối xứng Trả đối xứng  Nguyên mẫu: int doiXung(char*); Nguyễn Thị Thu Trang, SE-FIT-HUT 23 #include #include int doiXung(char*); void main() { char chuoi[125]; printf("\nNhap vao chuoi kiem tra : "); gets(chuoi); if (doiXung(chuoi)) printf("Chuoi doi xung"); else printf("Chuoi khong doi xung"); getch(); } Nguyễn Thị Thu Trang, SE-FIT-HUT 24 int doiXung(char *chuoi) { int i = 0, j; j = strlen(chuoi) - 1; while ((chuoi[i]==chuoi[j]) && (i=j) return 1; else return 0; } Nguyễn Thị Thu Trang, SE-FIT-HUT 25 6.2.4 Thư viện - So sánh, nối xâu void main() { char chuoi1[125], chuoi2[125]; int kq; printf("\nNhap vao chuoi 1: "); gets(chuoi1); printf("\nNhap vao chuoi 2: "); gets(chuoi2); kq = strcmp(chuoi1, chuoi2); if (kq==0) printf(“Chuoi bang chuoi \n"); else printf(“Chuoi khong bang chuoi \n”); printf(“Chuoi ghep voi chuoi la: %s”, strcat(chuoi1,chuoi2)); getch(); } Nguyễn Thị Thu Trang, SE-FIT-HUT 26 Bài tập Viết chương trình đổi ngược xâu từ chữ hoa thành chữ thường ngược lại Ví dụ   Nhap vao chuoi can chuyen: Truong DHBKHN Chuoi “Truong DHBKHN” doi “tRUONG dhbkhn” Nguyễn Thị Thu Trang, SE-FIT-HUT 27 Đổi ngược chữ hoa chữ thường /* Doi nguoc chu hoa chu thuong */ #include #include #include #include void main() { char chuoi[125], chuoikq[125]; int i = 0, j, k; printf("\nNhap vao chuoi can chuyen: "); gets(chuoi); strcpy(chuoikq, chuoi); Nguyễn Thị Thu Trang, SE-FIT-HUT 28 Đổi ngược chữ hoa chữ thường (2) while (chuoikq[i] !='\0') { if (islower(chuoikq[i])) chuoikq[i] = toupper(chuoikq[i]); else chuoikq[i] = tolower(chuoikq[i]); i++; } printf(“Chuoi \”%s\” chuyen sang la \”%s\” \n", chuoi, chuoikq); getch(); } Nguyễn Thị Thu Trang, SE-FIT-HUT 29 Đổi ngược chữ hoa chữ thường (3) Sửa chương trình thành hàm doiNguoc  Trả xâu đổi ngược chữ hoa chữ thường  Nguyên mẫu: char *doiNguoc(char*) Nguyễn Thị Thu Trang, SE-FIT-HUT 30 #include #include #include #include char *doiNguoc(char*); void main() { char chuoi[125], *chuoikq; printf("\nNhap vao chuoi goc: "); gets(chuoi); chuoikq = doiNguoc(chuoi); printf(“Chuoi \”%s\” chuyen sang la \”%s\”\n", chuoi, chuoikq); getch(); } Nguyễn Thị Thu Trang, SE-FIT-HUT 31 char *doiNguoc(char *chuoi) { char kq[125] = ""; int i=0; while (chuoi[i] !='\0') { if (islower(chuoi[i])) kq[i]=toupper(chuoi[i]); else kq[i]=tolower(chuoi[i]); i++; } return kq; } Nguyễn Thị Thu Trang, SE-FIT-HUT 32 Bài tập Viết hàm catKyTuTrongThua   Mục đích: Cắt ký tự trống thừa chuỗi: Đầu, cuối (nếu có ký tự trắng liền nhau) Nguyên mẫu: char *catKyTuTrongThua(char*) Viết hàm main() để nhập xâu, gọi hàm để cắt ký tự trống thừa, sau hiển thị kết sau cắt Nguyễn Thị Thu Trang, SE-FIT-HUT 33 #include #include #include #include char *catKyTuTrongThua(char*); void main() { char chuoi[125], *chuoikq; clrscr(); printf("\nNhap vao chuoi goc: "); fflush(stdin); gets(chuoi); chuoikq = catKyTuTrongThua(chuoi); printf("Chuoi \"%s\"", chuoi); printf("da cat ky tu thua la "); printf("\"%s\"\n", chuoikq); getch(); } Nguyễn Thị Thu Trang, SE-FIT-HUT 34 char *catKyTuTrongThua(char* s){ char *kq; int k = 0, i; for (i = 0; i

Ngày đăng: 29/05/2020, 15:25

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan