So sánh 2 chuỗi trong c++ không cần thư viện năm 2024

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ự đơn được phép.

Chuỗi C++ phân bổ bộ nhớ một cách linh hoạt. Nhiều bộ nhớ hơn có thể được phân bổ cho chuỗi trong thời gian chạy nếu cần. Vì không có sự phân bổ trước bộ nhớ nên không lãng phí bộ nhớ. Chúng ta có thể thực hiện nhiều thao tác khác nhau trên chuỗi, bao gồm so sánh, nối, chuyển đổi, v.v.

Khai báo chuỗi

C++ hỗ trợ hai kiểu khai báo chuỗi:

  • Chuỗi ký tự kiểu C
  • Kiểu 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 ký tự một chiều được kết thúc bằng ký tự null (\ 0). Chuỗi kết thúc bằng null có các ký tự tạo thành chuỗi, sau đó là chuỗi rỗng.

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 ra một chuỗi tạo thành từ John. Từ này có 4 ký tự, nhưng chuỗi có kích thước là 5. Khoảng trống thừa cho phép giữ 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 hằng chuỗi. Trình biên dịch C++ sẽ tự động đặt '\0' ở cuối chuỗi khi khởi tạo mảng.

std :: string

Thư viện C++ tiêu 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 không gian làm việc của mình bằng cách sử dụng bộ tiền xử lý

include như dưới đây:

include

Tiếp theo, chúng ta có thể khai báo chuỗi của mình bằ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 name để giữ giá trị John.

Truy cập các giá trị chuỗi

In C + +, chúng ta có thể truy cập các giá trị chuỗi bằng tên chuỗi. Ví dụ:

include

using namespace std; int main() { char name[5] = { 'J', 'o', 'h', 'n', '\0' }; cout << "String value is: "; cout << name << endl; return 0; }

Đầu ra:

So sánh 2 chuỗi trong c++ không cần thư viện năm 2024

Đây là ảnh chụp màn hình của mã:

So sánh 2 chuỗi trong c++ không cần thư viện năm 2024

Giải thích mã:

  1. Bao gồm tệp tiêu đề iostream trong mã của chúng tôi. Nó sẽ cho phép chúng ta đọc và ghi vào bảng điều khiển.
  2. Bao gồm không gian tên std để sử dụng các lớp và hàm của nó mà không cần gọi nó.
  3. Gọi hàm main() để thêm logic của chương trình vào bên trong. Dấu { bắt đầu phần thân của hàm main().
  4. Khai báo một chuỗi ký tự và đặt tên cho nó. Chuỗi sẽ lưu trữ giá trị John. Không gian thừa sẽ lưu trữ ký tự null.
  5. In một số văn bản trên bảng điều khiển.
  6. In giá trị của chuỗi có tên name trên bảng điều khiển.
  7. Hàm main() sẽ trả về một giá trị nếu chương trình chạy tốt.
  8. Phần cuối của hàm main().

Đây là một ví dụ khác sử dụng lớp chuỗi tiêu chuẩn C++:

include

include

using namespace std; int main() { string name = "Guru99"; cout << "The name is : " << name << endl; return 0; }

Đầu ra:

So sánh 2 chuỗi trong c++ không cần thư viện năm 2024

Đây là ảnh chụp màn hình của mã:

So sánh 2 chuỗi trong c++ không cần thư viện năm 2024

Giải thích mã:

  1. Bao gồm tệp tiêu đề iostream trong mã của chúng tôi. Nó sẽ cho phép chúng ta đọc và ghi vào bảng điều khiển.
  2. Bao gồm lớp chuỗi tiêu chuẩn trong mã của chúng tôi.
  3. Bao gồm không gian tên std để sử dụng các lớp và hàm của nó mà không cần gọi nó.
  4. Gọi hàm main() để thêm logic của chương trình vào bên trong. Dấu { bắt đầu phần thân của hàm main().
  5. Khai báo một chuỗi và đặt tên cho nó. Chuỗi sẽ lưu trữ giá trị Guru99.
  6. 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.
  7. Hàm main() sẽ trả về một giá trị nếu chương trình chạy tốt.
  8. Phần cuối của hàm main().

Bạn sẽ thường muốn thao tác với 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 thành 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 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 với nhau. Hàm trên sẽ nối chuỗi string2 vào 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ần xác định. Hàm trên sẽ trả về độ dài của chuỗi string1.