V ậ y ậ
Bài 8: Chuỗi ký tự
Bài 8: Chuỗi ký tự
1.
1. Khái niệmKhái niệm
Chuỗi ký tự là một dãy các ký tự Chuỗi ký tự là một dãy các ký tự đặt trong cặp dấu đặt trong cặp dấu
nháy kép. Chuỗi rỗng được ký hiệu bằng hai dấu nháy
nháy kép. Chuỗi rỗng được ký hiệu bằng hai dấu nháy
kép đi liền nhau. Một chuỗi ký tự được cấp phát một
kép đi liền nhau. Một chuỗi ký tự được cấp phát một
khoảng nhớ cho một mảng kiểu char chứa các ký tự của
khoảng nhớ cho một mảng kiểu char chứa các ký tự của
chuỗi v
chuỗi và chứa thêm ký tự '\0' là ký tự kết thúc chuỗi.à chứa thêm ký tự '\0' là ký tự kết thúc chuỗi.
Mỗi ký tự của chuỗi Mỗi ký tự của chuỗi được chứa trong được chứa trong một phần tử của một phần tử của
mảng. Chuỗi ký tự là một trường hợp riêng của mảng
mảng. Chuỗi ký tự là một trường hợp riêng của mảng
một chiều khi mỗi thành phần của mảng là ký tự
một chiều khi mỗi thành phần của mảng là ký tự
Chuỗi ký tự thường được khai báo theo khai Chuỗi ký tự thường được khai báo theo khai báo theo báo theo
hai mẫu:
hai mẫu:
char ten_chuoi[] ;
2. Các thao tác trên chuỗi
2. Các thao tác trên chuỗi
Trong C không tồn tại các phép toán so sánh, gán nội
Trong C không tồn tại các phép toán so sánh, gán nội
dung của chuỗi này cho chuỗi khác.
dung của chuỗi này cho chuỗi khác.
Ðể thực hiện các thao tác này ta sử dụng một thư viện
Ðể thực hiện các thao tác này ta sử dụng một thư viện
các hàm chuẩn là <
các hàm chuẩn là <string.h>string.h>..
Hàm strlen: Hàm strlen: int strlen(char s[])int strlen(char s[])
Trả về
Trả về độ dđộ dài của chuỗi s, chính là chỉ số của ký tự ài của chuỗi s, chính là chỉ số của ký tự NULL trong chuỗi.
NULL trong chuỗi.
Hàm strcpy: Hàm strcpy: strcpy(char dest[], char source[])strcpy(char dest[], char source[])
Sao chép nội dung chuỗi source vào chuỗi dest.
Sao chép nội dung chuỗi source vào chuỗi dest.
Hàm strchr: Hàm strchr: char *strchr(char s[], char c)char *strchr(char s[], char c)
Tìm lần xuất hiện
Tìm lần xuất hiện đầu tiđầu tiên của ký tự c trong chuỗi s, trả ên của ký tự c trong chuỗi s, trả
về
Hàm strncpy: Hàm strncpy: strncpy(char dest[], char source[], int n)strncpy(char dest[], char source[], int n)
Sao chép n ký tự trong chuỗi source vào chuỗi dest.
Sao chép n ký tự trong chuỗi source vào chuỗi dest.
Trong trường hợp không có
Trong trường hợp không có đủ n ký tự trong source thđủ n ký tự trong source thì ì
hàm sẽ
hàm sẽ điền thđiền thêm các ký tự trắng vào chuỗi dest.êm các ký tự trắng vào chuỗi dest.
Hàm strcat : Hàm strcat : strcat(char ch1[], char ch2[])strcat(char ch1[], char ch2[])
Nối chuỗi ch2 vào cuối chuỗi ch1. Sau lời gọi hàm này
Nối chuỗi ch2 vào cuối chuỗi ch1. Sau lời gọi hàm này
độ d
độ dài chuỗi ch1 bằng tổng ài chuỗi ch1 bằng tổng độ dđộ dài của cả hai chuỗi ch1 ài của cả hai chuỗi ch1
và ch2 trước lời gọi hàm.
và ch2 trước lời gọi hàm.
Hàm strncat : Hàm strncat : strncat(char ch1[], char ch2[],int n)strncat(char ch1[], char ch2[],int n)
Nối n ký tự
Hàm strstr : Hàm strstr : char *strstr(char s1[], char s2[])char *strstr(char s1[], char s2[])Tìm kiếm chuỗi s2 trong chuỗi s1, Trả về Tìm kiếm chuỗi s2 trong chuỗi s1, Trả về