Chuỗi ký tự trong C (string literal) | Laptrinhcanban.com

Chuỗi ký tự trong C (string literal)

Cùng tìm hiểu về chuỗi ký tự trong C. Bạn sẽ học được khái niệm chuỗi ký tự trong C là gì, cách biểu diễn và in chuỗi ký tự trong C, cũng như cách xử lý ký tự tiếng Việt có dấu trong C sau bài học này.

Chuỗi ký tự trong C là gì

Ký tự trong C được biểu diễn bởi 1 chữ cái thông qua 1 mã ký tự. Ngược lại với ký tự thì chuỗi ký tự trong C là sự kết hợp của nhiều ký tự khác nhau, ví như cụm chữ cái abc, cụm chữ số 123, hoặc cụm dấu như < . chẳng hạn.

Để biểu diễn chuỗi ký tự trong C, chúng ta đặt ký tự đó vào giữa hai dấu nháy kép "" như sau:

"abc"
"I Love You"
"123"
"<?> /"

Cần lưu ý là nếu một số được đặt trong cặp dấu nháy kép "" thì số đó sẽ được coi là chữ số trong C. Khi đó chúng ta không thể tính toán với chữ số này tương tự với số được. Hãy nhớ hai cách viết dưới đây biểu diễn hai kiểu dữ liệu khác nhau trong C.

123
"123"

Và nếu cụm chữ, cụm chữ số hoặc là cụm dấu chỉ có 1 ký tự mà thôi, thì chúng ta không gọi chúng là chuỗi ký tự, và chúng sẽ chỉ là ký tự trong C mà thôi. Khi đó, thay vì cặp dấu nháy kép thì chúng ta sẽ sử dụng cặp dấu nháy đơn '' để biểu diễn ký tự trong C, ví dụ như 'a' hay '0' chẳng hạn.

Biểu diễn chuỗi ký tự bằng tổ hợp ký tự trong C

Chuỗi ký tự trong C là sự kết hợp của nhiều ký tự khác nhau, dó đó nó có thể biểu diễn bởi tổ hợp nhiều ký tự trong C. Ví dụ như chuỗi ký tự abc được biểu diễn như sau:

"abc" <==> 'a' + 'b' + 'c' + '\0'

Giống như trên, chuỗi ký tự abc được tạo ra bởi tổ hợp các ký tự a,b,c, và ở cuối cùng là ký tự đặc biệt \0. Nói chính xác thì trong C, một chuỗi ký tự được xác định từ ký tự bắt đầu nó cho tới khi xuất hiện ký tự đặc biệt \0, và ký tự đặc biệt này có tác dụng thông báo cho chương trình biết chuỗi ký tự đã kết thúc tại vị trí nó xuất hiện.

Về ký tự đặc biệt trong C, hãy tham khảo bài viết chi tiết sau đây:

Cách in chuỗi ký tự trong C ra màn hình

Để in chuỗi ký tự trong C ra màn hình, chúng ta sử dụng hàm printf với cú pháp sử dụng với ký tự như sau:

printf(“%s\n”, "chuỗi ký tự");

Trong đó printf là hàm xuất dữ liệu trong C, và tham số %s có ý nghĩa sẽ xuất dữ liệu có dạng chuỗi ký tự.

Ví dụ cụ thể, chúng ta in ra màn hình các ký tự như sau:

#include <stdio.h>
int main(void){
printf("%s\n","abc");
printf("%s\n","123");
printf("%s\n","i love you");
printf("%s\n","<=. !");
}

Kết quả:

abc
123
i love you
<=. !

Ký tự tiếng Việt có dấu trong C

Trong C, các ký tự tiếng Việt có dấu (ví dụ như ă, ú,đ…) được biểu diễn bởi nhiều hơn 2 mã ký tự, do đó chúng cũng được coi là chuỗi ký tự trong C, và chúng ta phải sử dụng cặp dấu nháy kép để biểu diễn chúng.

Điều này cũng tương tự với các ký tự như hán tự tiếng Trung, kanji hoặc hankaku tiếng Nhật (ví dụ như , )

Cần lưu ý là khi đứng đơn lẻ, mặc dù chúng chỉ có 1 ký tự, nhưng chúng không được coi là kiểu ký tự trong C, và chúng ta không thể dùng cặp dấu nháy đơn '' để biểu diễn chúng được.

Ví dụ các cách viết 'ế' hay 'đ' là sai trong C và chương trình sẽ báo lỗi khi chạy như sau:

#include <stdio.h>
int main(void){
printf("%c\n",'đ');
}

>>>Main.c:3:19: error: character too large for enclosing character literal type
>>> printf("%c\n",'đ');
>>> ^

Thay vào đó, chúng ta cần dùng cặp dấu nháy kép "" cũng như hàm printf với tham số %s với các ký tự này như sau:

#include <stdio.h>
int main(void){
printf("%s\n","ê");
printf("%s\n","ế");
printf("%s\n","đ");
printf("%s\n","日");
printf("%s\n","タ");
}

Kết quả:

ê
ế
đ


Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về chuỗi ký tự trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.