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

Bài viết Kiểu Ký Tự Trong C++ Là Gì? (Phần 1) thuộc chủ đề về Thắc Mắt thời gian này đang được rất nhiều bạn quan tâm đúng không nào !! Hôm nay, Hãy cùng cctechvietnam tìm hiểu Kiểu Ký Tự Trong C++ Là Gì? (Phần 1) trong bài viết hôm nay nhé ! Các bạn đang xem nội dung : “Kiểu Ký Tự Trong C++ Là Gì? (Phần 1)”

Chào các bạn, trong bài viết này, ta sẽ cùng nhau tìm hiểu về kiểu dữ liệu ký tự. Liệu kiểu dữ liệu ký tự có gì giống, khác so với kiểu dữ liệu số? Khi xài kiểu ký tự cần lưu ý các đặc điểm nào? Các kiến thức cơ bản về kiểu ký tự?

Cùng nhau đọc bài viết này và các bạn sẽ có được sự nhìn nhận cơ bản về kiểu ký tự.

Ký tự là gì?

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

Ký tự trong c++ được hiểu là ký tự trong bảng mã ASCII.

 BANG MA ASCII ----------------------------------------------------------------------------- 32 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92  93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 125 126 ~ 

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

Kiểu ký tự char luôn được đặt ở giữa 2 dấu nháy đơn ' .

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

char kytu1; // Khai báo kytu1 không nhận giá trị char kytu2 = 'a'; // kytu2 nhận giá trị là ký tự 'a'

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

int main() char kytu = 'a'; cout << kytu << " " << (int)kytu; //in ra màn hình "a 97" 
a 97

Chính vì vậy, ta có thể cộng kiểu ký tự với 1 số nguyên n, kết quả xuất ra là ký tự mang mã số của ký tự đầu cộng với n trong bảng mã ASCII:

int main() char kytu = 'a'; cout << "Ky tu nhap vao la: " << kytu; kytu = kytu + 1; // kytu = 'a' + 1 = 97 + 1 = 98 = 'b' cout << "Ky tu sau khi them 1 don vi: " << kytu; 
Ky tu nhap vao la: a Ky tu sau khi them 1 don vi: b

Mảng ký tự

Mảng ký tự là tập hợp các ký tự một cách tuần tự, bên trong dấu ngoặc kép "

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

include <iostream> include <string.h> //Khai báo thư viện cho kiểu dữ liệu string using namespace std; int main() string mang1; char mang2[100]; char mang3[] = "kieu ky tu"; 

Tính số lượng phần tử có trong mảng

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

#include <iostream> #include <string.h> using namespace std; int main() char a[] = "abcdef"; cout << strlen(a); // Chương trình xuất ra giá trị 6 

Ta cần phân biệt rõ 2 khái niệm là số phần tử của mảng, và số ký tự có trong mảng. Ta có khai báo sau:

#include <iostream> #include <string.h> using namespace std; int main() char a[15] = "abcd"; cout << "Kich co mang a: " << sizeof(a) << endl; cout << "So ky tu trong a: " << strlen(a); 
Kich co mang a: 15 So ky tu trong a: 4

Trong đó hàm sizeof() là số lượng phần tử có trong mảng, sẽ bao gồm phần tử rỗng và phần tử ký tự, còn hàm strlen() sẽ chỉ tính các phần tử ký tự.

Mọi Người Xem :   Thể chế hóa là gì?

Vậy nếu 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 thì điều kiện để kết thúc vòng lặp là khi nào?

Trước tiên, ta cần tìm hiểu về ký tự NULL.

Ký tự Null

Ký tự NULL, ký hiêu là '', đây là ký tự báo hiệu kết thúc chuỗi, VD ta có khai báo sau char a[ ]= "abcd". Khi đó chương trình sẽ tự động chèn ký tự '' vào cuối mảng, mảng sẽ có dạng như sau:

a 1 2 3 4
Ký tự ‘a’ ‘b’ ‘c’ ‘d’

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

int main() char a[10]; a[0] = 'a'; a[1] = 'b'; a[2] = 'c'; a[3] = 'd'; cout << a; 
abcd]ù ]

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

int main() char a[10]; a[0] = 'a'; a[1] = 'b'; a[2] = 'c'; a[3] = 'd'; a[4] = ''; cout << a; 
abcd

Trở lại vấn đề trên, bây giờ ta đã biết ở cuối mỗi mảng sẽ có ký tự '' báo hiệu kết thúc mảng, vậy thì vòng lặp của chúng ta sẽ có dạng như sau:

int length(char mang[]) int dem = 0; for (int i=0;mang[i]!='';i++) dem = dem + 1; return dem; 

Nhập vào mảng ký tự

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

int main() char a[100]; cin >> a; // Nhập vào mảng "abcdef" cout << a; // Chương trình xuất ra "abcdef" 

Nhưng có vấn đề với việc nhập mảng có chứa khoảng trắng.

int main() char a[100]; cin >> a; // Nhập vào mảng "ha noi" cout << a; // Chương trình chỉ xuất ra "ha", phần phía sau " noi" bị mất 

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

int main() char a[100],b[100]; cin >> a; // Nhập vào mảng "ha noi" cin >> b; // Ở bước này chương trình không cho nhập mà đi xuống câu lệnh dưới cout << a << endl; // Chương trình xuất ra "ha" cout << b << endl; // Chương trình xuất ra "noi" 

Để giải quyết vấn đề này, ta có thể sử dụng câu lệnh cin.getline(tên biến, số lượng nhập) đối với char hoặc getline(cin, tên biến) đối với string , lấy luôn cả dấu cách khi nhập dữ liệu vào.

#include <iostream> #include <string.h> using namespace std; int main() char a[100]; string b; cin.getline(a,100); // Nhập vào mảng char "mang thu nhat" getline(cin,b); // Nhập vào mảng string "mang thu hai" cout << a << endl; // Chương trình xuất ra "mang thu nhat" cout << b << endl; // Chương trình xuất ra "mang thu hai" 

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

#include <iostream> #include <string.h> using namespace std; int main() char a[100]; string b; cin.getline(a,50,'.'); // Nhập vào "ha noi." dừng nhập mảng khi gặp dấu chấm '.' hoặc đủ 50 ký tự getline(cin,b,'n'); // Nhập vào mảng "thanh phon" dừng khi nhấn Enter cout << a << endl; // Chương trình xuất ra "ha noi" cout << b << endl; // Chương trình xuất ra "thanh pho" 

Tạm kết

Kiểu dữ liệu ký tự có phần giống và cũng có phần khác so với kiểu dữ liệu số, ở bài viết này mình sẽ dừng ở việc khai báo nhập xuất cho mảng ký tự, phần sau mình sẽ nói rõ thêm về bộ nhớ đệm và khai báo kiểu ký tự, các hàm hay được sử dụng nhiều trong mảng ký tự.

Mọi Người Xem :   Kẽm (Zn) là gì? Tính chất hóa học - Điều chế , Ứng dụng

Cảm ơn các bạn đã theo dõi, nếu được, nhớ đánh giá cho mình hoặc để lại comment ý kiến đóng góp của bạn về bài viết của mình.



Các câu hỏi về char c++ là gì


Nếu có bắt kỳ câu hỏi thắc mắt nào vê char c++ là gì hãy cho chúng mình biết nhé, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình cải thiện hơn trong các bài sau nhé <3 Bài viết char c++ là gì ! được mình và team xem xét cũng như tổng hợp từ nhiều nguồn. Nếu thấy bài viết char c++ là gì Cực hay ! Hay thì hãy ủng hộ team Like hoặc share. Nếu thấy bài viết char c++ là gì rât hay ! chưa hay, hoặc cần bổ sung. Bạn góp ý giúp mình nhé!!

Các Hình Ảnh Về char c++ là gì


Các hình ảnh về char c++ là gì đang được chúng mình Cập nhập. Nếu các bạn mong muốn đóng góp, Hãy gửi mail về hộp thư [email protected] Nếu có bất kỳ đóng góp hay liên hệ. Hãy Mail ngay cho tụi mình nhé

Tra cứu thêm thông tin về char c++ là gì tại WikiPedia

Bạn hãy tham khảo thêm nội dung chi tiết về char c++ là gì từ web Wikipedia tiếng Việt.◄ Tham Gia Cộng Đồng Tại

💝 Nguồn Tin tại: https://cctechvietnam.vn/hoi-dap/

💝 Xem Thêm Chủ Đề Liên Quan tại : https://cctechvietnam.vn/hoi-dap/

Related Posts

About The Author

Add Comment