Chieu ngang của một ký tự bằng bao nhiêu năm 2024

Trong bài học CƠ BẢN VỀ CHUỖI KÝ TỰ TRONG C++ [An introduction to std::string], bạn đã biết được chuỗi ký tự là tập hợp các ký tự tuần tự, được đặt trong dấu ngoặc kép. Dùng để biểu diễn những thông báo, văn bản, … trong chương trình.

Ví dụ: "Hello, HowKteam.com!" chính là một chuỗi ký tự.

Ngôn ngữ C++ có 2 loại chuỗi ký tự khác nhau:

  • Chuỗi ký tự std::string được cài đặt trong một lớp của thư viện chuẩn STL.
  • Chuỗi ký tự C-style nguyên bản từ ngôn ngữ C.

Kiểu chuỗi ký tự std::string được xây dựng từ chuỗi ký tự C-style. Vì vậy, chuỗi ký tự std::string thường được sử dụng trong C++ vì tính đơn giản, và dễ sử dụng của nó.

Trong bài học này, chúng ta sẽ tìm hiểu bản chất và cách sử dụng của kiểu C-style strings.

Chuỗi ký tự C-style bản chất là mảng 1 chiều các ký tự, kết thúc bằng ký tự ‘\0’ [null]. Hay còn gọi là null-terminated string.

Ví dụ:

char sz[] = "Kteam";

Hình bên dưới mô tả 1 C-style string tên là sz có kiểu char gồm 6 phần tử [5 ký tự thường, và 1 ký tự null ‘\0’] nằm trong vùng nhớ RAM:

_Howkteam_com.png]

Chuỗi ký tự sz được khởi tạo 5 phần tử, nhưng chuỗi ký tự C-style luôn mặc định kết thúc bằng ký tự null ‘\0’, nên chuỗi sz sẽ có 6 phần tử.

Khai báo và khởi tạo mảng ký tự [C-style strings]

Khai báo mảng ký tự [C-style strings]

Cú pháp khai báo tương tự như cách khai báo mảng 1 chiều.

Ví dụ:

char szFullName[30]; // Dài 29 ký tự char szDayOfBirth[9]; // Dài 8 ký tự

Chú ý: Mảng ký tự kết thúc bằng ký tự ‘\0’ [null] => độ dài chuỗi = kích thước mảng – 1

Khởi tạo giá trị cho mảng ký tự [C-style strings]

Cách 1: Khởi tạo với độ dài cụ thể.

char sz[10] = { 'K', 't', 'e', 'a', 'm', '\0' }; char sz[10] = "Kteam"; // Tự động thêm '\0' vào cuối chuỗi

_Howkteam_com.png]

Cách 2: Khởi tạo tự động xác định độ dài.

char sz[] = { 'K', 't', 'e', 'a', 'm', '\0' }; char sz[] = "Kteam"; // Tự động thêm '\0' vào cuối chuỗi

_Howkteam_com.png]

Bản chất của mảng ký tự cũng là mảng 1 chiều, nghĩa là bạn có khởi tạo chuỗi ký tự, nhưng bạn không thể gán chuỗi ký tự trực tiếp cho nó.

Ví dụ các phép gán hợp lệ:

char sz[] = "Kteam"; // Tự động thêm '\0' vào cuối chuỗi sz[0] = 'F'; sz[1] = 'r'; sz[2] = 'e'; sz[3] = 'e'; sz[4] = 'E';

Ví dụ các phép gán KHÔNG hợp lệ:

char sz[] = "Kteam"; // Tự động thêm '\0' vào cuối chuỗi sz = "FreeE"; // Lỗi, không được gán trực tiếp

Xuất mảng ký tự [C-style strings] với std::cout

Không giống như mảng 1 chiều thông thường cần sử dụng vòng lặp để xuất từng phần tử, mảng ký tự cho phép sử dụng đối tượng std::cout để in toàn bộ ký tự ra màn hình.

Khi in mảng ký tự [C-style strings], đối tượng std::cout sẽ in tất cả ký tự cho đến khi gặp ký tự ‘\0’ [null].

Ví dụ:

`

include

using namespace std; int main[] { // 0 1 2 3 4 5 // K t e a m \0 char szKteam[] = "Kteam"; cout

Chủ Đề