Chuỗi là gì?
Một chuỗi là một chuỗi các ký tự. Chuỗi C ++ là một đối tượng của lớp std :: string. Các ký tự là các chuỗi byte được lưu trữ với quyền truy cập vào một byte ký tự duy nhất được phép.
Chuỗi C ++ cấp phát bộ nhớ động. Có thể cấp thêm bộ nhớ cho chuỗi trong thời gian chạy nếu cần. Vì không có phân bổ trước bộ nhớ, không lãng phí bộ nhớ. Chúng tôi có thể thực hiện các hoạt động khác nhau trên chuỗi, bao gồm so sánh, nối, chuyển đổi, v.v.
Trong hướng dẫn C ++ này, bạn sẽ học:
- Chuỗi là gì?
- Khai báo chuỗi
- Chuỗi ký tự kiểu C
- std :: string
- Truy cập giá trị chuỗi
- Hàm chuỗi:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Thí dụ:
Khai báo chuỗi
C ++ hỗ trợ hai kiểu khai báo chuỗi:
- Chuỗi ký tự kiểu C
- Loại lớp chuỗi
Chuỗi ký tự kiểu C
Kiểu khai báo chuỗi này đã được giới thiệu trong ngôn ngữ lập trình C. C ++ tiếp tục hỗ trợ nó. Nó chỉ đơn giản là một mảng một chiều các ký tự được kết thúc bằng một ký tự rỗng (\ 0). Một chuỗi được kết thúc bằng null có các ký tự tạo nên chuỗi sau đó là một chuỗi null.
Hãy xem xét khai báo chuỗi được đưa ra dưới đây:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Khai báo trên tạo một chuỗi tạo thành từ John. Từ có 4 ký tự, nhưng chuỗi có kích thước là 5. Khoảng trống thừa cho phép chứa ký tự null.
Sử dụng quy tắc khởi tạo mảng, chúng ta có thể viết câu lệnh trên như sau:
char name[] = "John";
Lưu ý rằng bạn không cần phải đặt ký tự null ở cuối chuỗi. Trình biên dịch C ++ sẽ tự động đặt '\ 0' vào cuối chuỗi khi khởi tạo mảng.
std :: string
Thư viện C ++ chuẩn cung cấp lớp chuỗi hỗ trợ các hoạt động chuỗi khác nhau. Nó được viết dưới dạng std :: string.
Để sử dụng lớp này, trước tiên chúng ta phải đưa nó vào vùng làm việc của mình bằng cách sử dụng bộ xử lý trước #include như được hiển thị bên dưới:
#include
Tiếp theo, chúng ta có thể khai báo chuỗi của mình bằng cách sử dụng từ khóa string. Ví dụ:
string name = "John";
Câu lệnh trên sẽ tạo một chuỗi có tên là tên để giữ giá trị John.
Truy cập giá trị chuỗi
Trong C ++, chúng ta có thể truy cập các giá trị chuỗi bằng cách sử dụng tên chuỗi. Ví dụ:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Đầu ra:
Đây là ảnh chụp màn hình của mã:
Giải thích mã:
- Bao gồm tệp tiêu đề iostream trong mã của chúng tôi. Nó sẽ cho phép chúng tôi đọc và ghi vào bảng điều khiển.
- Bao gồm không gian tên std để sử dụng các lớp và chức năng của nó mà không cần gọi nó.
- Gọi hàm main () bên trong mà logic của chương trình sẽ được thêm vào. Dấu {bắt đầu phần nội dung của hàm main ().
- Khai báo một chuỗi ký tự và đặt tên cho nó. Chuỗi sẽ lưu trữ giá trị John. Khoảng trống thừa sẽ lưu ký tự null.
- In một số văn bản trên bảng điều khiển.
- In giá trị của chuỗi có tên trên bảng điều khiển.
- Hàm main () sẽ trả về một giá trị nếu chương trình chạy tốt.
- Cuối phần thân của hàm main ().
Đây là một ví dụ khác sử dụng lớp chuỗi chuẩn C ++:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Đầu ra:
Đây là ảnh chụp màn hình của mã:
Giải thích mã:
- Bao gồm tệp tiêu đề iostream trong mã của chúng tôi. Nó sẽ cho phép chúng tôi đọc và ghi vào bảng điều khiển.
- Bao gồm lớp chuỗi tiêu chuẩn trong mã của chúng tôi.
- Bao gồm không gian tên std để sử dụng các lớp và chức năng của nó mà không cần gọi nó.
- Gọi hàm main () bên trong mà logic của chương trình sẽ được thêm vào. Dấu {bắt đầu phần nội dung của hàm main ().
- Khai báo một chuỗi và đặt tên cho nó. Chuỗi sẽ lưu giá trị Guru99.
- In giá trị của tên chuỗi cùng với một số văn bản trên bảng điều khiển.
- Hàm main () sẽ trả về một giá trị nếu chương trình chạy tốt.
- Cuối phần thân của hàm main ().
Hàm chuỗi:
Bạn thường sẽ muốn thao tác với các chuỗi. C ++ cung cấp một loạt các hàm mà bạn có thể sử dụng cho việc này. Các hàm này được định nghĩa trong lớp CString, do đó, chúng ta phải đưa nó vào mã của mình để sử dụng các hàm. Hãy để chúng tôi thảo luận về một số:
strcpy ()
Đây là chức năng sao chép chuỗi. Nó sao chép một chuỗi vào một chuỗi khác.
Cú pháp:
strcpy(string1, string2);
Hai tham số của hàm, string1 và string2, là các chuỗi. Hàm sẽ sao chép chuỗi string1 vào chuỗi 1.
strcat ()
Đây là hàm nối chuỗi. Nó nối các chuỗi.
Cú pháp:
strcat(string1, string2);
Hai tham số của hàm, string1 và string2 là các chuỗi được nối. Hàm trên sẽ nối chuỗi string2 với cuối chuỗi string1.
strlen ()
Đây là hàm độ dài chuỗi. Nó trả về độ dài của chuỗi được truyền cho nó làm đối số.
Cú pháp:
strnlen(string1)
Tham số string1 là tên của chuỗi có độ dài được xác định. Hàm trên sẽ trả về độ dài của chuỗi string1.
strcmp ()
Đây là hàm so sánh chuỗi. Nó được sử dụng để so sánh chuỗi.
Cú pháp:
strcmp(string1, string2);
Hàm trên sẽ trả về 0 nếu chuỗi string1 và string2 tương tự nhau, nhỏ hơn 0 nếu string1
Thí dụ:
Ví dụ sau minh họa cách sử dụng các hàm chuỗi trên:
#include#include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}
Đầu ra:
Đây là ảnh chụp màn hình của mã:
Giải thích mã:
- Bao gồm tệp tiêu đề iostream trong mã của chúng tôi. Nó sẽ cho phép chúng tôi đọc và ghi vào bảng điều khiển.
- Bao gồm lớp CString tiêu chuẩn trong mã của chúng tôi.
- Bao gồm không gian tên std để sử dụng các lớp và chức năng của nó mà không cần gọi nó.
- Gọi hàm main () bên trong mà logic của chương trình sẽ được thêm vào. Dấu {bắt đầu phần nội dung của hàm main ().
- Khai báo một chuỗi 10 ký tự và đặt tên cho nó1. Chuỗi sẽ lưu giá trị Guru99.
- Khai báo một chuỗi 10 ký tự và đặt tên cho nó2. Chuỗi sẽ lưu trữ giá trị John.
- Khai báo một chuỗi 10 ký tự và đặt tên cho nó3.
- Khai báo một biến số nguyên có tên là len.
- Sao chép tên chuỗi1 vào tên chuỗi3.
- In giá trị của chuỗi name1 cùng với một số văn bản trên bảng điều khiển. Nó sẽ in Guru99.
- Nối chuỗi name2 với cuối chuỗi name1. Giá trị của name1 bây giờ là Guru99John.
- In giá trị của chuỗi name1 cùng với một số văn bản trên bảng điều khiển. Nó sẽ in Guru99John
- Xác định độ dài của chuỗi có tên name1 và gán giá trị độ dài cho biến len.
- In giá trị của biến len cùng với một số văn bản khác trên bảng điều khiển.
- Hàm main () sẽ trả về một giá trị nếu chương trình chạy tốt.
- Cuối phần thân của hàm main ().
Tóm lược
- Một chuỗi là một chuỗi các ký tự.
- Chuỗi thuộc về lớp chuỗi tiêu chuẩn trong C ++.
- Chúng ta có thể khai báo các chuỗi bằng cách sử dụng chuỗi ký tự C-style hoặc lớp chuỗi tiêu chuẩn.
- Hàm strcpy () sao chép một chuỗi này vào một chuỗi khác.
- Hàm strcat () nối hai hàm.
- Hàm strlen () trả về độ dài của một hàm.
- Hàm strcmp () so sánh hai chuỗi.