Ký tự đặc biệt trong C (escape sequence) | Laptrinhcanban.com

HOME › >>

Ký tự đặc biệt trong C (escape sequence)

Hướng dẫn cách sử dụng ký tự đặc biệt trong C(tiếng anh: escape sequence; tiếng Nhật:エスケープシーケンス). Bạn sẽ học được cách sử dụng ký tự đặc biệt trong C khi xử lý chuỗi sau bài học này.

Ký tự đặc biệt trong C là gì

Ký tự đặc biệt trong C hay còn gọi là escape sequence, hoặc là chuỗi thoát trong C, là các chuỗi ký tự bắt đầu bởi dấu gạch chéo ngược như \n hay \a , nhằm biểu diễn các ký tự vốn không thể biểu diễn theo cách thông thường trong C.

Lấy ví dụ như ký tự xuống dòng tạo bởi phím Enter. Chúng ta đều biết khi nhấn Enter thì sẽ xuống dòng, tuy nhiên chúng ta lại không có ký tự đơn nào để biểu thị hành động tôi muốn xuống dòng bên trong chương trình cả. Do đó, chúng ta sẽ dùng dấu gạch ngược \ kết hợp với ký tự n để tạo ra ký tự đặc biệt \n có tác dụng biểu diễn ký tự xuống dòng tạo bởi phím Enter.

Ký tự đặc biệt trong C

Trong C, chúng ta dùng ký hiệu \ kèm với ký tự khác để biểu diễn ký tự đặc biệt. Hãy cùng xem bảng tổng hợp ký tự đặc biệt trong C dưới đây:

số thứ tựký tự đặc biệtÝ nghĩa
1\aÂm cảnh báo
2\bbackspace
3\nký tự xuống dòng (LF)
4\rký tự xuống dòng (CR)
5\fTách trang
5\tký tự TAB
5\tký tự TAB
6\vTAB dọc
7Ký tự tiền yên
8\?Dấu chấm hỏi
9\\Dấu gạch chéo ngược
10\'dấu nháy đơn (‘)
11\"dấu nháy kép (“)
12\0Null
13\000ASCII ký tự hệ cơ số 8
14\xhhASCII ký tự hệ cơ số 16

Trong đó chúng ta thường hay sử dụng nhiều nhất đó là các ký tự đặc biệt của dấu ngoặc đơn \', dấu nháy kép \" ,ký tự xuống dòng \n và dấu tab \t.

Ví dụ điển hình như ký tự xuống dòng \n chẳng hạn, chúng ta chỉ cần viết ký tự này giữa một chuỗi tại vị trí muốn ngắt dòng như sau:

Xin chào\nViệt Nam

Tại vị trí chứa chuỗi \n, bạn đã ra lệnh cho máy tính xuống dòng ở đó, và cách viết trên sẽ được máy tính hiểu như sau:

Xin chào
Việt Nam

Cách sử dụng ký tự đặc biệt trong C

Để sử dụng ký tự đặc biệt (chuỗi thoát) trong C, chúng ta viết ký tự đặc biệt vào vị trí mà cần thêm vào trong chuỗi.
Ví dụ sau đây, chúng ta sẽ thêm ký tự đặc biệt xuống dòng vào chuỗi như sau:

#include <stdio.h>

int main(void){
printf("%s\n", "Chào bạn\nBạn có khoẻ không\nHẹn gặp sau nhé");
printf("%s\n", "Đây là dấu tab:\t\t\ttrong câu");

return 0;
}

Kết quả, ở những vị trí có ký tự đặc biệt sẽ được chuyển thành xuống dòng hoặc tab như sau:

Chào bạn
Bạn có khoẻ không
Hẹn gặp sau nhé
Đây là dấu tab: trong câu

Một ví dụ khác, trong bài chuỗi ký tự trong C chúng ta đã biết cách sử dụng dấu nháy kép " để viết một chuỗi ký tự. Nói cách khác thì chương trình C khi gặp dấu nháy kép " thì sẽ tự động hiểu rằng, chỗ này đã bắt đầu một chuỗi ký tự rồi đấy.

Tuy nhiên, trong trường hợp chúng ta không muốn dùng dấu nháy kép " để khai báo chuỗi ký tự, mà sử dụng nó như một ký tự bình thường trong câu thì sao? Ví dụ như chuỗi sau đây chẳng hạn:

Anh ấy rất "đặc biệt" với tôi

Lúc này nếu để chuỗi này (bao gồm cả dấu nháy kép) trong cặp dấu nháy kép để khai báo chuỗi ký tự theo cách thông thường thì lỗi sẽ xảy ra như sau:

#include <stdio.h>

int main(void){ ;
printf("%s\n", "Anh ấy rất "đặc biệt" với tôi");
return 0;
}

>>>Main.c:4:35: error: expected ')'
>>> printf("%s\n", "Anh ấy rất "đặc biệt" với tôi");

Để giải quyết lỗi ở trên, chúng ta chỉ cần đơn giản sử dụng tới ký tự đặc biệt của dấu nháy kép \" và sử dụng nó trong chuỗi trên là xong:

#include <stdio.h>

int main(void){ ;
printf("%s\n", "Anh ấy rất \"đặc biệt\" với tôi");
return 0;
}

Kết quả:

Anh ấy rất "đặc biệt" với tôi

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách sử dụng ký tự đặc biệt escape sequence 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.

URL Link

https://laptrinhcanban.com/c/lap-trinh-c-co-ban/ky-tu-va-so-trong-c/ky-tu-dac-biet-trong-c/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

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.