Danh mục

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    
Jamona

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 ...

Tài liệu được xem nhiều: