Chuyên mục
Hỏi Đáp

Kiểu Ký Tự Trong C Là Gì? (Phần 1)

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ề các kiểu dữ liệu ký tự. Kiểu dữ liệu ký tự giống hay khác với kiểu dữ liệu số? Những tính năng nào cần được xem xét khi sử dụng các kiểu ký tự? Kiến thức cơ bản về các kiểu nhân vật?

Đọc bài viết này cùng nhau và bạn sẽ hiểu cơ bản về phong cách nhân vật.

ký tự là gì?

Ký tự

(ký hiệu trong c ++ là char) là 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ự 32 là ký tự khoảng trắng .

các ký tự char luôn được đặt trong dấu ngoặc kép ‘.

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

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

do đó chúng ta có thể thêm kiểu ký tự với số nguyên n, đầu ra là ký tự mang mã của 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 chuỗi các ký tự, được đặt trong dấu ngoặc kép “

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

đếm số phần tử trong mảng

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

Chúng ta cần phân biệt rõ hai khái niệm: số phần tử trong mảng và số ký tự trong mảng. chúng tôi có tuyên bố sau:

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

và điều gì sẽ xảy ra nếu chúng tôi bị cấm sử dụng thư viện string.h?

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?

trước tiên, chúng ta cần tìm hiểu về ký tự null.

ký tự rỗng

ký tự null, ký hiệu là ‘ 0’, đây là ký tự đánh dấu phần cuối của chuỗi, ví dụ, chúng ta có khai báo sau char a [] = “abcd”. khi đó chương trình sẽ tự động chèn ký tự ‘ 0’ vào cuối mảng, mảng sẽ có dạng như sau:

vì vậy khi chúng ta khai báo một mảng có n ký tự, chúng ta phải khai báo thêm 1 ký tự, tức là n + 1 phần tử vào mảng để nhường chỗ cho ký tự ‘ 0’, nếu không có ký tự ‘ 0’, khi in ma trận ra màn hình thì bị lỗi:

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

Quay trở lại vấn đề trước, bây giờ chúng ta biết rằng ở cuối mỗi mảng sẽ có một ký tự ‘ 0’ đánh dấu sự kết thúc của mảng, vì vậy vòng lặp của chúng ta sẽ giống như sau:

nhập mảng ký tự

Phương thức nhập một mảng ký tự phức hợp

không giống như nhập một mảng kiểu số, phương thức này phải nhập từng phần tử, mà đơn giản hơn giống như một phương pháp nhập một biến kiểu dữ liệu số.

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

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

Để giải quyết vấn đề này, chúng ta có thể sử dụng khai báo 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 dữ liệu input.input.

hoặc bạn có thể dừng mảng ở bất kỳ 1 ký tự nào

tạm thời

Kiểu dữ liệu ký tự có phần giống và cũng có phần khác với kiểu dữ liệu Numeric, trong phần này mình sẽ đi sâu vào phần khai báo đầu vào và đầu ra cho mảng ký tự, phần sau mình sẽ giải thích kỹ hơn về kiểu dữ liệu số. và khai báo kiểu ký tự, các hàm thường được sử dụng trên mảng ký tự.

cảm ơn bạn đã tìm kiếm, nếu có thể nhớ đánh giá cho tôi hoặc để lại nhận xét với nhận xét của bạn về bài viết của tôi.

Trả lời

Email của bạn sẽ không được hiển thị công khai.