Xin chào các bạn, trong bài viết này chúng ta sẽ cùng nhau tìm hiểu về kiểu dữ liệu ký tự. Kiểu dữ liệu kí tự giống hay khác kiểu dữ liệu số? Cần lưu ý những đặc điểm nào khi làm việc với các kiểu ký tự? Kiến thức cơ bản về các loại ký tự?

Hãy cùng đọc bài viết này và bạn sẽ có hiểu biết cơ bản về các kiểu ký tự.

Nhân vật là gì?

Ký tự

(ký hiệu trong c++ là char) là một kiểu dữ liệu có kích thước 1 byte.

Các ký tự trong c++ được hiểu là các ký tự trong mã hóa ascii.

Ký tự thứ 32 là ký tự khoảng trắng.

ký tự char luôn được đặt trong dấu nháy đơn ‘.

Khai báo kiểu ký tự cũng giống như khai báo kiểu dữ liệu số:

Các ký tự trong c++ khi lưu vào bộ nhớ máy sẽ được lưu dưới dạng số nguyên và sẽ được chuyển thành ký tự rồi xuất ra khi in ra màn hình, cụ thể là:

Vì vậy, chúng ta có thể thêm một số nguyên n vào kiểu ký tự, và đầu ra là ký tự mang mã ký tự đầu tiên cộng với n trong bảng mã ascii:

Mảng ký tự

Mảng ký tự là một dãy ký tự được đặt trong dấu nháy kép”

Để khai báo mảng ký tự ta có thể sử dụng từ khóa string trong thư viện string.h hoặc từ khóa char ten_bien [so_luong_phantu] để khai báo.

Tính số phần tử của mảng

Để khai báo số lượng ký tự trong mảng, chúng ta sử dụng hàm strlen() có sẵn trong thư viện string.h.h.

.

Chúng ta cần phân biệt rõ ràng 2 khái niệm: số phần tử trong mảng và số ký tự trong mảng. Ta có câu lệnh sau:

trong đó sizeof() là số lượng phần tử trong mảng, bao gồm cả phần tử null và ký tự, và strlen() sẽ chỉ đếm các phần tử ký tự.

Nếu chúng ta bị cấm sử dụng thư viện string.h thì sao?

Chúng ta có thể sử dụng vòng lặp, vậy điều kiện để kết thúc vòng lặp là khi nào?

Đầu tiên, chúng ta cần hiểu về ký tự null.

Ký tự trống

Ký tự null, được thể hiện là ”, đây là ký tự cho biết kết thúc chuỗi, ví dụ, ta có câu lệnh sau char a[ ]= “abcd”. Khi đó chương trình sẽ tự động chèn ký tự ” vào cuối mảng và mảng sẽ có dạng như sau:

Vì vậy khi khai báo mảng n ký tự ta cần khai báo thêm 1 ký tự nữa tức là đặt n+1 phần tử vào mảng, chừa khoảng trống cho ký tự ”, nếu không có ký tự ” ‘, Khi in mảng ra màn hình thì báo lỗi:

Để khắc phục, tôi có thể chèn ký tự “” vào cuối.

Trở lại câu hỏi trên, bây giờ chúng ta biết rằng sẽ có một ký tự ” ở cuối mỗi mảng để chỉ ra phần cuối của mảng, vì vậy vòng lặp của chúng ta sẽ như sau:

Nhập mảng ký tự

Cách nhập mảng ký tự phức tạp khác với cách nhập mảng kiểu số, phải nhập từng phần tử, đơn giản hơn thì nó giống như cách nhập một biến kiểu số.

Nhưng đã xảy ra sự cố khi nhập các mảng có chứa khoảng trắng.

Nếu chúng ta chỉ sử dụng hàm nhập cin thì khi gặp dấu cách, chương trình sẽ tự hiểu là phần cuối của mảng, và đưa toàn bộ mảng sau khoảng trắng vào vùng đệm. Nếu sau đây là câu lệnh nhập chuỗi thì các ký tự trong bộ nhớ sẽ được chuyển sang mảng sau

Để giải quyết vấn đề này, chúng ta có thể sử dụng câu lệnh cin.getline(tên biến, số đầu vào) cho char hoặc getline(cin, tên biến) cho chuỗi, bao gồm khoảng trắng làm đầu vào. Dữ liệu đầu vào.

Hoặc bạn có thể dừng mảng tại 1 ký tự bất kỳ bằng cách

Tạm thời

Kiểu dữ liệu ký tự có phần giống với kiểu dữ liệu số nhưng cũng có đôi chút khác biệt, trong bài viết này mình sẽ dừng lại ở phần khai báo đầu vào và đầu ra của mảng ký tự, trong phần sau mình sẽ giải thích chi tiết về kiểu dữ liệu số. Khai báo cache và kiểu ký tự, các hàm thường dùng trong mảng ký tự.

Cảm ơn các bạn đã xem, nếu có thể nhớ đánh giá cho tôi hoặc comment phản hồi của bạn về bài viết của tôi.

Kiểm tra tiếng Anh trực tuyến

Bạn đã biết trình độ tiếng Anh hiện tại của mình chưa?
Bắt đầu làm bài kiểm tra

Nhận tư vấn lộ trình từ ACET

Hãy để lại thông tin, tư vấn viên của ACET sẽ liên lạc với bạn trong thời gian sớm nhất.