1 / 15

CHƯƠNG 7 CHUỖI KÝ TỰ

CHƯƠNG 7 CHUỖI KÝ TỰ. 1. Khái niệm Trong C++ không có kiểu dữ liệu cơ bản để lưu các xâu kí tự . Để có thể thỏa mãn nhu cầu này , người ta sử dụng mảng có kiểu char . Chuỗi kí tự thực chất là mảng một chiều các phần tử có kiểu char ( mảng 1 chiều các kí tự )

Download Presentation

CHƯƠNG 7 CHUỖI KÝ TỰ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CHƯƠNG 7CHUỖI KÝ TỰ

  2. 1. Khái niệm TrongC++ khôngcókiểudữliệucơbảnđểlưucácxâukítự. Đểcóthểthỏamãnnhucầunày, người ta sửdụngmảngcókiểuchar. Chuỗikítựthựcchấtlàmảngmộtchiềucácphầntửcókiểu char (mảng 1 chiềucáckítự) Mộtchuỗitrong C luônluônđượckếtthúcbằng ‘\0’ (kítự NULL), kítựnày do C tựđộngthêmvàokhichúng ta nhậpdữliệuchochuỗi Hằngchuỗiđượcđặttrongcặpnháykép, vídụ: “I LOVE C++”

  3. 2. Khai báo Chuỗi pc s I L O V E C + + • Cách 1: Dùngmảngmộtchiều charstringName[Max_Length]; Ví dụ: chars[10]; • Cách 2: Dùng con trỏ char *PointerName; Ví dụ: char *pc;

  4. Khởi tạo chuỗi • Cú pháp: char stringName= “Hằng chuỗi” • Ví dụ: char str[] = {‘H’, ’e’, ’l’, ’l’, ’o’, ’\0’}; //CÁCH 1 char str[] = “Hello”; //CÁCH 2 char *str = “Hello”; //CÁCH 3

  5. 3. Mộtsốhàmliênquanđếnkítự • intisalnum(intkt); làhàmkiểmtraktcóphảilàkítự (chữcáihoặcchữsố) hay không • intisalpha(intkt); làhàmkiểmtraktcóphảilàchữcái hay không • intisdigit(intkt); làhàmkiểmtraktcóphảilàchữsố hay không • intislower(intkt); làhàmkiểmtraktcóphảilàchữcáithường hay không • … Đào Thị Cẩm Hằng- Khoa KH và KT Máy Tính- Trường ĐẠI HỌC CÔNG NGHIỆP TP.HCM

  6. 4. Mộtsốhàmliênquanđếnchuỗi Hàmnhậpchuỗi: char *get(char *str); Tác dung: Chờnhậpvàotừbànphímchuỗikítự, hàmtrảvề con trỏtrỏđếnđầuchuỗistr Chú ý rằng, đểđảmbảobộđệmbànphímđượclàmrỗngtrướckhinhậpdữliệuchuỗi, chúng ta nênsửdụnghàmfflush(stdin) Ngoàira ta cóthểdùngthủtụccinhoặccin.getline Hàmxuấtchuỗi: char *puts(char *str); Tácdụng: xuấtchuỗistrrathiếtbịxuấtchuẫn Ngoàira ta cóthểdùngthủtụccout Đào Thị Cẩm Hằng- Khoa KH và KT Máy Tính- Trường ĐẠI HỌC CÔNG NGHIỆP TP.HCM

  7. Một số hàm khác liên qua đến chuỗi Đào Thị Cẩm Hằng- Khoa KH và KT Máy Tính- Trường ĐẠI HỌC CÔNG NGHIỆP TP.HCM

  8. Một số hàm khác liên qua đến chuỗi Đào Thị Cẩm Hằng- Khoa KH và KT Máy Tính- Trường ĐẠI HỌC CÔNG NGHIỆP TP.HCM

  9. 5. Mảng các Chuỗi char arrayList[][length] = { constantString1, constantString2,..., constantStringN }; Ví dụ: char listOfPL[][10] = { “Pascal”, “C++”, “C#” }; • Mảng các Chuỗi là một mảng ký tự hai chiều. Kích thước của chỉ mục thứ nhất là số Chuỗi và kích thước của chỉ mục thứ hai xác định chiều dài lớn nhất của mỗi Chuỗi. Ví dụ: charstr[5][80]; • Khởi tạo mảng các Chuỗi

  10. 7. Mảng con trỏ đến các Chuỗi • Ngoài cách dùng mảng ký tự hai chiều để lưu trữ mảng các Chuỗi, ta có thể dùng mảng của các con trỏ. Mỗi con trỏ sẽ chứa địa chỉ của Chuỗi • Ví dụ: char *str[20];

  11. Ví dụ mảng con trỏ void main() { char *name[5]; for(int i=0 ; i<5 ; i++) name[i] = new char[50];   for(int i=0 ; i<5 ; i++) { cout << "Input name " << i+1 <<": "; gets(name[i]); } cout << "List of names: "; for(int i=0 ; i<5 ; i++) cout << name[i] << ", "; }

  12. Ví dụ: kiểm tra chuỗi đối xứng voidmain() { char s[255]; cout<<“Ban hay nhapchuoi:”; gets(s); intlen=strlen(s); int flag=1; for (int i=0; i < len/2 ; i++) if (*(s+i)!= *(s+l-i-1)) { flag=0; break; } if(flag==0) cout<<"chuoikhongdoixung “; } Đào Thị Cẩm Hằng- Khoa KH và KT Máy Tính- Trường ĐẠI HỌC CÔNG NGHIỆP TP.HCM

  13. Ví dụ: In Hoa Đầu Mỗi Từ voidmain() { char *s=new char[80]; cout<<“Nhapchuoi:”; gets(s); s[0]=toupper(s[0]); for (int i=0; i<strlen(s);i++) if (s[i]= =' ') s[i+1]=toupper(s[i+1]); puts(s); delete s; } Đào Thị Cẩm Hằng- Khoa KH và KT Máy Tính- Trường ĐẠI HỌC CÔNG NGHIỆP TP.HCM

  14. Ví dụ: Tìm chuỗi con voidmain() { char *p, str1[20], str2[20]; cout<<"nhapchuoi 1:"; gets(str1); cout<<"nhapchuoi 2:"; gets(str2); p= strstr(str1,str2); if(p==NULL) cout<<"Khongtimthay "; else cout<<"Tim thay tai vi tri "<< (p-str1) ; }

  15. Thực hiện bài tập chương 7

More Related