Bài giảng Kỹ thuật lập trình nâng cao - Chương 4: Chuỗi ký tự - Trần Minh Thái

*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ự

*Khai báo:

*Cách 1: Con trỏhằng

char < tên="" chuỗi=""> [< sốkýtựtối="" đa="">] ;

Ví dụ: char chuoi[25];

Ý nghĩa khai báo 1 mảng kiểu kýtựtên là chuoi có 25 phần tử

(như vậy tối đa ta có thểnhập 24 kýtựvì phần tửthứ25 đã

chứa ký tự kết thúc chuỗi ‘\0’ )

*Lưu ý: Chuỗi kýtự đượ c kết thúc bằng kýtự‘\0’. Do

đó khi khai báo độdài của chuỗi luôn luôn khai báo dư

1 phần tửđểchứa kýtự‘\0’.

*Ví dụ: Chuỗi “NGUYEN VAN A” được lưu

*Cách 2: Con trỏ

char *< tên="" chuỗi="">;

Ví dụ : char *chuoi;

Cấp phát bộ nhớ trước khi sử dụng chuỗi

pdf 11 trang kimcuc 5080
Bạn đang xem tài liệu "Bài giảng Kỹ thuật lập trình nâng cao - Chương 4: Chuỗi ký tự - Trần Minh Thái", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kỹ thuật lập trình nâng cao - Chương 4: Chuỗi ký tự - Trần Minh Thái

Bài giảng Kỹ thuật lập trình nâng cao - Chương 4: Chuỗi ký tự - Trần Minh Thái
TRẦN MINH THÁI
1
*
*Chuỗi ky t́ư ḷà 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ự
*Khai báo:
*Cách 1: Con trỏhằng
char [] ;
Ví dụ: char chuoi[25];
Ý nghĩa khai báo 1 mảng kiểu kýtư ṭên là chuoi có 25 phần tử
(như vậy tối đa ta có thê n̉hập 24 ky t́ư ̣ vì phần tửthứ25 đã
chứa ký tự kết thúc chuỗi ‘\0’ )
*Lưu ý: Chuỗi ky t́ự được kết thúc bằng ky t́ư ‘̣\0’. Do
đó khi khai báo đô ḍài của chuỗi luôn luôn khai báo dư
1 phần tư đ̉ê c̉hứa ky t́ư ‘̣\0’.
2
*
*Ví dụ: Chuỗi “NGUYEN VAN A” được lưu
*Cách 2: Con trỏ
char *;
Ví dụ : char *chuoi; 
Cấp phát bộ nhớ trước khi sử dụng chuỗi
3
‘N’ ‘G’ ‘U’ ‘Y’ ‘E’ ‘N’ ‘ ‘ ‘V’ ‘A’ ‘N’ ‘ ‘ ‘A’ ‘\0’
0 1 2 3 4 5 6 7 8 9 10 11 12
*
*cin.getline(chuỗi, số ký tự tối đa);
*Ví dụ:
char *str;
str = new char [30];
cin.getline(str, 30);
4
**Tính độ dài của chuỗi s
int strlen(char s[]);
*Sao chép nội dung chuỗi nguồn vào chuỗi đích
strcpy(char đích[], char nguồn[]);
*Chép n ký tự từ chuỗi nguồn sang chuỗi đích. 
Nếu chiều dài nguồn < n thì hàm sẽ điền 
khoảng trắng cho đủ n ký tự vào đích
strncpy(char đích[], char nguồn[], int n);
*** phải có: đích[n]=‘\0’;
5
*Nối chuỗi s2 vài chuỗi s1
strcat(char s1[],char s2[]); 
*Nối n ký tự đầu tiên của chuỗi s2 vào chuỗi s1
strncat(char s1[],char s2[],int n);
*So sánh 2 chuỗi s1 và s2 theo nguyên tắc thứ tự 
từ điển. Phân biệt chữ hoa và thường. Trả về:
0 : nếu s1 bằng s2.
>0: nếu s1 lớn hơn s2.
<0: nếu s1 nhỏ hơn s2. 
int strcmp(char s1[],char s2[]); 
6
*So sánh n ký tự đầu tiên của s1 và s2, giá trị trả
về tương tự hàm strcmp()
int strncmp(char s1[],char s2[], int n);
*So sánh chuỗi s1 và s2 nhưng không phân biệt
hoa thường, giá trị trả về tương tự hàm strcmp()
int stricmp(char s1[],char s2[]);
*So sánh n ký tự đầu tiên của s1 và s2 nhưng
không phân biệt hoa thường, giá trị trả về tương
tự hàm strcmp()
int strnicmp(char s1[],char s2[], int n);
7
*Tìm sự xuất hiện đầu tiên của ký tư c trong 
chuỗi s. Trả về:
NULL: nếu không có
Địa chỉ c: nếu tìm thấy
char *strchr(char s[], char c); 
*Tìm sự xuất hiện đầu tiên của chuỗi s2 trong 
chuỗi s1. Trả về:
NULL: nếu không có
Ngược lại: Địa chỉ bắt đầu chuỗi s2 trong s1
char *strstr(char s1[], char s2[]);
8
*Tách chuỗi:
*Nếu s2 có xuất hiện trong s1: Tách chuỗi s1 
thành hai chuỗi: Chuỗi đầu là những ký tự cho 
đến khi gặp chuỗi s2 đầu tiên, chuỗi sau là 
những ký tự còn lại của s1 sau khi đã bỏ đi 
chuỗi s2 xuất hiện trong s1.
*Nếu s2 không xuất hiện trong s1 thì kết quả 
chuỗi tách vẫn là s1.
char *strtok(char s1[], char s2[]);
9
10
*
*Đếm số ký tự trắng trong chuỗi
*Viết hàm kiểm tra xem chuỗi có đối xứng hay 
không?.
*Đổi tất ca ̉các ky ́tư ̣có trong chuỗi thành chư ̃
thường (không dùng hàm strlwr)
*Viết chương trình đảo ngược các ky ́tư ̣trong
chuỗi.
Ví dụ: nhập ABCDE, 
chuỗi sau khi đảo ngược là:EDCBA
*
*Viết chương trình tìm kiếm 1 ky ́tư ̣xem có 
trong chuỗi hay không, nếu có xuất ra vị trí của
tư ̀đo.́
*Viết chương trình tìm kiếm 1 chuỗi xem có 
trong chuỗi hay không, nếu có xuất ra vị trí của
xuất hiện của chuỗi đó.
*Đếm số từ có trong chuỗi (từ cách nhau bởi
khoảng trắng)
*Viết hàm kiểm tra xem chuỗi có tuần hoàn hay 
không?
11

File đính kèm:

  • pdfbai_giang_ky_thuat_lap_trinh_nang_cao_chuong_4_chuoi_ky_tu_t.pdf