Bài giảng Lập trình C nâng cao: Chương 4 - Trần Minh Thái
Số trang: 35
Loại file: pptx
Dung lượng: 174.60 KB
Lượt xem: 18
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Chuỗi ký tự là trường hợp đặc biệt của mảng 1 chiều, là một dãy các phần tử, mỗi phần tử có kiểu ký tự. Trong chương này, người học sẽ tìm hiểu về xử lý chuỗi ký tự trong lập trình C thông qua những nội dung sau đây: Khái niệm về chuỗi ký tự, khai báo chuỗi ký tự, các hàm xử lý chuỗi,... Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình C nâng cao: Chương 4 - Trần Minh Thái Chương 4. Xử lý chuỗi ký tựTRẦNMINHTHÁIEmail:minhthai@itc.edu.vnWebsite:www.minhthai.edu.vn Cập nhật: 08 tháng 04 năm 2015 Nội dung#2 • Khái niệm • Khai báo • Các hàm xử lý chuỗi • Bài tập Khái niệm#3 • Chuỗi ký tự là trường hợp đặc biệt của mảng 1 chiều,làmôtda ̣ ̃ycácphầntử,mỗiphầntửcó ̉ kiêukýt ự • Hằngkýtựđượcđặttrongcặpnháyđơn.Vídụ:‘a’, ‘1’,‘’ • Hằng chuỗi được đặt trong cặp nháy kép. Ví dụ: “hovaten”,“123”,“” 3 Khái niệm#4 • Chuỗi ký tự được kết thúc bằng ký tự ‘ ’ (giá trị 0). Do đó khi khai báo độ dài cua ̉ chuỗi luôn luônkhaibáodư1phầntửđêch ̉ ứakýtự‘ ’. • Vídụ:Chuỗi“NGUYENVANA”đượclưu ‘N’ ‘G’ ‘U’ ‘Y’ ‘E’ ‘N’ ‘ ‘ ‘V’ ‘A’ ‘N’ ‘ ‘ ‘A’ ‘ ’ 0 1 2 3 4 5 6 7 8 9 10 11 12 Chuỗigồm13kýtự 4 Khai báo chuỗi#5 • Cá ch1:Controhă ̉ ̀ ng char[]; Ví dụ:charstr[25]; Ýnghĩakhaibáo 1mangkiêuky ̉ ̉ ́ tựtênlà strcó 25phầntử(nhưvâyco ̣ ̉ ưutốiđa24kýtựvì ́thêl phầ ntửthứ 25đã chứ akýtựkếtthúcchuỗi ‘ ’) Khái niệm#6 • Cá ch2:Contrỏ char*; Vídu:̣ char*str; • Phảicấpphátbộnhớtrướckhisửdụngchuỗistr • Vídụ: char*str; str=(char*)malloc(30);//Cấpphátbộnhớchostrgồm30 Nhập chuỗi#7 • Cúpháp: char*gets(char*str); ̣ Nhânca ́ckýtựnhâpt ̣ ừphímchođếnkhinhấn phímEntervàđưavàochuỗistr Vídụ: void main() { char str[80]; printf(Nhap vao chuoi: ); gets(str); Nhập chuỗi#8 • Lưuý:Khôngthểdùnghàmscanfđểnhậpchuỗicó khoảngtrắng • Vídụ: Giảsửnhậpvàochuỗi:“NguyenVanAn” Thìkếtquảxuấtramànhìnhlà:“Nguyen” voidmain() (dostrchỉlưuchuỗi“Nguyen”) { charstr[80]; printf(Nhapvaochuoi:); scanf(“%s”,&str); printf(Chuoivuanhapla:%s ,str); } Xuất chuỗi#9 • Cú pháp : int puts (const char *s); • Ví dụ: void main() { char *str = Vi du xuat chuoi; puts(str); } Có thể dùng printf() với định dạng “%s” Các hàm xử lý chuỗi - #10 1. Tính độ dài chuỗi: strlen 2. Sao chép chuỗi: strcpy, strncpy 3. Nối chuỗi: strcat, strncat 4. So sánh chuỗi: strcmp, strncmp, stricmp, strnicmp 5. Tìm kiếm: strchr, strstr 6. Tách chuỗi: strtok 7. Đổi thành chữ in HOA: strupr 8. Đổi thành chữ in thường: strlwr Tínhđộdàicủachuỗi#11 intstrlen(chars[]); • Vídụ: char*str=BorlandInternational; printf(Dodaistr=%d ,strlen(str)); ̉ Dodaistr=21 Kế tqua: Bài tập ví dụ - tính độ dài chuỗi#12 • Viết hàm đếm số ký tự trắng trong chuỗi • Viết hàm in ra màn hình chuỗi theo thứ tự đảo ngược • Viết hàm tìm xem ký tự ch có trong chuỗi không? Nếu có cho biết vị trí xuất hiện đầu tiên của ch • Viết hàm kiểm tra xem chuỗi có đối xứng hay không? Bài tập làm thêm – tính độ dài chuỗi#13 • Viết hàm tra xem trong chuỗi có ký tự số hay không nếu có tách ra thành một mảng số riêng • Viết chương trình tìm kiếm xem ký tự nào xuất hiện nhiều nhất trong chuỗi Sao chép chuỗi#14 • ̣ Saochépnôidungchuô ̃iscrvàochuỗidest strcpy(chardest[],charscr[]); • Vídụ: chardest[10]; char*src=abcdefghi; strcpy(dest,src); printf(%s,dest); ̉ abcdefghi Kế tqua: 14 Sao chép chuỗi#15 • Chép nkýtựtừchuỗi scrsangchuỗi dest.Nếu chiềudài scr Bài tập ví dụ - sao chép chuỗi#16 • Viết hàm đổi tất cả các ký tự có trong chuỗi thành chữ HOA (không dùng hàm strupr) • Viết chương trình đảo ngược các ký tự trong chuỗi Ví dụ: Nhập: ABCDE Chuỗi sau khi đảo ngược là: EDCBA Bài tập làm thêm – sao chép chuỗi#17 • Viết hàm đổi tất cả các ký tự có trong chuỗi thành chữ thường ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình C nâng cao: Chương 4 - Trần Minh Thái Chương 4. Xử lý chuỗi ký tựTRẦNMINHTHÁIEmail:minhthai@itc.edu.vnWebsite:www.minhthai.edu.vn Cập nhật: 08 tháng 04 năm 2015 Nội dung#2 • Khái niệm • Khai báo • Các hàm xử lý chuỗi • Bài tập Khái niệm#3 • Chuỗi ký tự là trường hợp đặc biệt của mảng 1 chiều,làmôtda ̣ ̃ycácphầntử,mỗiphầntửcó ̉ kiêukýt ự • Hằngkýtựđượcđặttrongcặpnháyđơn.Vídụ:‘a’, ‘1’,‘’ • Hằng chuỗi được đặt trong cặp nháy kép. Ví dụ: “hovaten”,“123”,“” 3 Khái niệm#4 • Chuỗi ký tự được kết thúc bằng ký tự ‘ ’ (giá trị 0). Do đó khi khai báo độ dài cua ̉ chuỗi luôn luônkhaibáodư1phầntửđêch ̉ ứakýtự‘ ’. • Vídụ:Chuỗi“NGUYENVANA”đượclưu ‘N’ ‘G’ ‘U’ ‘Y’ ‘E’ ‘N’ ‘ ‘ ‘V’ ‘A’ ‘N’ ‘ ‘ ‘A’ ‘ ’ 0 1 2 3 4 5 6 7 8 9 10 11 12 Chuỗigồm13kýtự 4 Khai báo chuỗi#5 • Cá ch1:Controhă ̉ ̀ ng char[]; Ví dụ:charstr[25]; Ýnghĩakhaibáo 1mangkiêuky ̉ ̉ ́ tựtênlà strcó 25phầntử(nhưvâyco ̣ ̉ ưutốiđa24kýtựvì ́thêl phầ ntửthứ 25đã chứ akýtựkếtthúcchuỗi ‘ ’) Khái niệm#6 • Cá ch2:Contrỏ char*; Vídu:̣ char*str; • Phảicấpphátbộnhớtrướckhisửdụngchuỗistr • Vídụ: char*str; str=(char*)malloc(30);//Cấpphátbộnhớchostrgồm30 Nhập chuỗi#7 • Cúpháp: char*gets(char*str); ̣ Nhânca ́ckýtựnhâpt ̣ ừphímchođếnkhinhấn phímEntervàđưavàochuỗistr Vídụ: void main() { char str[80]; printf(Nhap vao chuoi: ); gets(str); Nhập chuỗi#8 • Lưuý:Khôngthểdùnghàmscanfđểnhậpchuỗicó khoảngtrắng • Vídụ: Giảsửnhậpvàochuỗi:“NguyenVanAn” Thìkếtquảxuấtramànhìnhlà:“Nguyen” voidmain() (dostrchỉlưuchuỗi“Nguyen”) { charstr[80]; printf(Nhapvaochuoi:); scanf(“%s”,&str); printf(Chuoivuanhapla:%s ,str); } Xuất chuỗi#9 • Cú pháp : int puts (const char *s); • Ví dụ: void main() { char *str = Vi du xuat chuoi; puts(str); } Có thể dùng printf() với định dạng “%s” Các hàm xử lý chuỗi - #10 1. Tính độ dài chuỗi: strlen 2. Sao chép chuỗi: strcpy, strncpy 3. Nối chuỗi: strcat, strncat 4. So sánh chuỗi: strcmp, strncmp, stricmp, strnicmp 5. Tìm kiếm: strchr, strstr 6. Tách chuỗi: strtok 7. Đổi thành chữ in HOA: strupr 8. Đổi thành chữ in thường: strlwr Tínhđộdàicủachuỗi#11 intstrlen(chars[]); • Vídụ: char*str=BorlandInternational; printf(Dodaistr=%d ,strlen(str)); ̉ Dodaistr=21 Kế tqua: Bài tập ví dụ - tính độ dài chuỗi#12 • Viết hàm đếm số ký tự trắng trong chuỗi • Viết hàm in ra màn hình chuỗi theo thứ tự đảo ngược • Viết hàm tìm xem ký tự ch có trong chuỗi không? Nếu có cho biết vị trí xuất hiện đầu tiên của ch • Viết hàm kiểm tra xem chuỗi có đối xứng hay không? Bài tập làm thêm – tính độ dài chuỗi#13 • Viết hàm tra xem trong chuỗi có ký tự số hay không nếu có tách ra thành một mảng số riêng • Viết chương trình tìm kiếm xem ký tự nào xuất hiện nhiều nhất trong chuỗi Sao chép chuỗi#14 • ̣ Saochépnôidungchuô ̃iscrvàochuỗidest strcpy(chardest[],charscr[]); • Vídụ: chardest[10]; char*src=abcdefghi; strcpy(dest,src); printf(%s,dest); ̉ abcdefghi Kế tqua: 14 Sao chép chuỗi#15 • Chép nkýtựtừchuỗi scrsangchuỗi dest.Nếu chiềudài scr Bài tập ví dụ - sao chép chuỗi#16 • Viết hàm đổi tất cả các ký tự có trong chuỗi thành chữ HOA (không dùng hàm strupr) • Viết chương trình đảo ngược các ký tự trong chuỗi Ví dụ: Nhập: ABCDE Chuỗi sau khi đảo ngược là: EDCBA Bài tập làm thêm – sao chép chuỗi#17 • Viết hàm đổi tất cả các ký tự có trong chuỗi thành chữ thường ...
Tìm kiếm theo từ khóa liên quan:
Lập trình C nâng cao Bài giảng Lập trình C nâng cao Lập trình C Chuỗi ký tự Xử lý chuỗi ký tự Các hàm xử lý chuỗiGợi ý tài liệu liên quan:
-
114 trang 220 2 0
-
Hướng dẫn thực hành lập trình C trên Visual Studio
9 trang 124 0 0 -
Giáo trình Kỹ thuật lập trình C: Căn bản & nâng cao - Phần 1
202 trang 115 0 0 -
Giáo trình Ngôn ngữ lập trình 2
50 trang 105 0 0 -
Giáo trình Ngôn ngữ lập trình C căn bản
142 trang 95 0 0 -
Program C Ansi Programming Embedded Systems in C and C++ phần 4
12 trang 83 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 71 0 0 -
Bài giảng Phát triển phần mềm mã nguồn mở: Lập trình C/Linux - Bùi Minh Quân
29 trang 67 0 0 -
STL lập trình khái lược trong C++ part 1
35 trang 61 0 0 -
Giáo trình về môn Lập trình C căn bản
131 trang 44 0 0