5 từ có dấu sty ở cuối năm 2022

Dẫn nhập

Ở bài học trước, mình đã chia sẻ cho các bạn về CÁC THAO TÁC TRÊN MẢNG 2 CHIỀU trong C++.

Hôm nay, mình sẽ giới thiệu cho các bạn về Mảng ký tự trong C++ [C-style strings].

Nội dung

Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về:

  • KIỂU KÝ TỰ TRONG C++ [Character]
  • MẢNG 1 CHIỀU [Arrays]

Trong bài ta sẽ cùng tìm hiểu các vấn đề:

  • Mảng ký tự [C-style strings] là gì?
  • Khai báo và khởi tạo mảng ký tự [C-style strings]
  • Xuất mảng ký tự [C-style strings] với std::cout
  • Nhập mảng ký tự [C-style strings] với std::cin

Mảng ký tự [C-style strings] là gì?

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:

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

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

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ủ Đề