Lập trình C. Các thao tác trên chuỗi

Chia sẻ bởi Huỳnh Bảo Long | Ngày 29/04/2019 | 79

Chia sẻ tài liệu: Lập trình C. Các thao tác trên chuỗi thuộc Bài giảng khác

Nội dung tài liệu:

Chuỗi ký tự
Nguyễn Văn Khiết
Nội dung
Chuỗi ký tự
Các thao tác trên chuỗi
Bài tập
Chuỗi ký tự
Chuỗi là một mảng của các ký tự và giá trị sau ký tự cuối cùng của chuỗi là null.
Ví dụ
char str[] = “hello“;
Hoặc
char str[6];
str[0] = ‘h`;
str[1] = ` e`;
str[2] = `l`;
str[3] = ‘l`;
str[4] = ‘o`;
str[5] = 0;
Chuỗi ký tự
Khi C gặp một chuỗi hằng, bản thân chuỗi đó được xem như tên của mảng ẩn.
Tên của mảng tương đương với địa chỉ phần tử đầu tiên, vì vậy chuỗi hằng cũng là một con trỏ chỉ tới phần tử đầu tiên của mảng ẩn
Hiddenstring.cpp
Chuỗi ký tự
Thao tác sau là không đúng:
char s[80] = “This is a string”, *p;
s = “This new string”;
vì s là con trỏ hằng.

scanf, gets, puts
scanf : không nhập chuỗi đến ký tự trắng
char s[100];
scanf("%s",s);
printf ("%s ",s);
gets : nhập chuỗi bao gồm ký tự trắng
char s[100];
gets(s);
printf ("%s ",s);
puts : xuất cả chuỗi
putchar : xuất ký tự

Các thao tác trên chuỗi
strlen
strlen(s) : trả về chiều dài của chuỗi s. (không tính ký tự null)
Các thao tác trên chuỗi
strcpy và strncpy
strcpy(s1,s2): copy chuỗi s2 vào chuỗi s1. (strcpy1.cpp)
strncpy(s1,s2,n): copy n ký tự đầu tiên của chuỗi s2 vào chuỗi s1. s1 phải có đội lớn đủ để chứa n ký tự.
n>strlen(s2): giống strcpy
n<=strlen(s1): an toàn vì ‘’ của s1 vẫn còn
strlen(s1)phải thêm s1[n] = ‘’;
Các thao tác trên chuỗi
strcmp và strncmp
strcmp(s1,s2): so sánh 2 chuỗi s1 và s2 (dựa vào ASCII)
-1: s1 0: s1=s2
1: s1>s2
stricmp(s1,s2): so sánh không phân biệt hoa thường
strncmp(s1,s2, n)
strcmp1.cpp

Các thao tác trên chuỗi
strcat và strncat
strcat(s1,s2): nối chuỗi s2 vào sau chuỗi s1. s1 phải đủ lớn để chứa cả 2 chuỗi
strncat(s1,s2, n)
Strcat1.cpp

Các thao tác trên chuỗi
strstr
strstr(s1,s2): tìm vị trí xuất hiện của chuỗi s2 trong s1. Trả về con trỏ tại vị trí xuất hiện nếu tìm thấy, trả về NULL nếu không tìm thấy.
(strstr1.cpp)
strchr
strchr(s1,ch): tìm vị trí xuất hiện của ký tự ch trong s1. Trả về con trỏ tại vị trí xuất hiện nếu tìm thấy, trả về NULL nếu không tìm thấy.
(strchr1.cpp)

Chuyển đổi kiểu dữ liệu
atoi() : chuyển chuỗi sang int
atol( ) : chuyển chuỗi sang long
atof( ) : chuyển chuỗi sang float
Atoi1.cpp

Bài tập
Cài đặt lại các hàm strcpy, strcat, strstr, strchr, strcmp, …
Cài đặt các hàm thêm một ký tự/chuỗi vào một vị trí cho trước
Cài đặt hàm xóa một ký tự tại một vị trí cho trước trong chuỗi

Bài tập
Cài đặt hàm đổi các ký tự trong chuỗi thành ký tự hoa/thường
Cài đặt hàm đổi toàn bộ các ký tự bắt đầu 1 từ trong chuỗi thành ký tự hoa, các ký tự còn lại thành ký tự thường
Cài đặt hàm bỏ toàn bộ khoảng trắng đầu chuỗi, cuối chuỗi và giữa hai từ trong chuỗi còn đúng một khoảng trắng
Bài tập
Cài đặt hàm tìm từ có chiều dài lớn/nhỏ nhất trong chuỗi.
Cài đặt hàm đếm số từ có trong chuỗi
Cài đặt hàm xuất ra chuỗi con chung lớn nhất của hai chuỗi
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Huỳnh Bảo Long
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)