Xuống dòng trong C | Laptrinhcanban.com

Xuống dòng trong C

Hướng dẫn cách xuống dòng trong C. Bạn sẽ biết cách xuống dòng trong C, cách sử dụng ký tự xuống dòng trong C cũng như cách xóa ký tự xuống dòng trong C trong bài học này.

Xuống dòng trong C

Về cơ bản, một câu lệnh trong C có thể được viết trên một hoặc nhiều dòng và được kết thúc bằng cách sử dụng dấu chấm than ; ở cuối câu.
Và bạn có thể tùy ý xuống dòng trong C bằng cách nhấn phím ENTER khi đang viết một câu lệnh. Các khoảng trống này cũng sẽ được bỏ qua khi chương trình được xử lý.

Đây là điểm này rất khác biệt so với các ngôn ngữ khác như Python vốn dùng xuống dòng tạo bởi phím ENTER để kết thúc câu lệnh.

Ví dụ, chúng ta có thể xuống dòng bên trong câu lệnh C tùy ý như sau:

#include <stdio.h>
int main(void) {
char
str1[16] = "Hello";
char str2[16] =
", Việt Nam";
printf("%s%s", str1,
str2);
return 0;
}

Kết quả của ví dụ trên cũng giống như cách viết sau:

#include <stdio.h>
int main(void) {
char str1[16] = "Hello";
char str2[16] = ", Việt Nam";
printf("%s%s", str1, str2);
return 0;
}

Kết quả

Hello, Việt Nam

Tuy nhiên, chúng ta không thể xuống dòng bằng phím ENTER ở giữa một đối tượng ( tên biến, từ khóa, chuỗi v.v..) trong C được. Do xuất hiện xuống dòng giữa đối tượng nên đã khiến đối tượng đó thay đổi tính chất.

Ví dụ với các cách viết sau đây đều khiến đối tượng trong C thay đổi và lỗi sẽ xảy ra:

Ví dụ 1: Lỗi xảy ra khi xuống dòng giữa từ khóa trong C

#include <stdio.h>
int main(void) {
cha
r str1[16] = "Hello"; //Lỗi khi xuống dòng giữa từ khóa "char"
char str2[16] = ", Việt Nam";
printf("%s%s\n", str1, str2);
return 0;
}

>>> Main.c:3:5: error: use of undeclared identifier 'cha'; did you mean 'char'?

Ví dụ 2: Lỗi xảy ra khi xuống dòng giữa tên biến trong C

#include <stdio.h>
int main(void) {
char str1[16] = "Hello";
char str
2[16] = ", Việt Nam"; //Lỗi khi xuống dòng giữa tên biến "str2"
printf("%s%s\n", str1, str2);
}

>>> Main.c:4:13: error: expected ';' at end of declaration char str

Ví dụ 1: Lỗi xảy ra khi xuống dòng giữa chuỗi chứa ký tự xuống dòng \n

#include <stdio.h>
int main(void) {
char str1[16] = "Hello";
char str2[16] = ", Việt Nam";
printf("%s%s\n
", str1, str2); //Lỗi khi xuống dòng giữa chuỗi chứa ký tự xuống dòng \n
return 0;
}

>>> Main.c:5:12: warning: missing terminating '"' character [-Winvalid-pp-token] printf("%s%s\n

Ký tự xuống dòng trong C

Ở phần trên bạn đã biết có thể tùy ý xuống dòng trong C bằng cách nhấn phím ENTER khi đang viết một câu lệnh. Tuy nhiên, xuống dòng trong câu lệnh sẽ bị bỏ qua khi xử lý câu lệnh đó, do đó kết quả chương trình cũng không bị xuống dòng khi in ra màn hình.
Thay vào đó, để xuống dòng khi viết chuỗi, bạn cần tới ký tự xuống dòng trong C.

Ký xuống dòng xuống dòng là một loại mã dùng để in xuống dòng trong C, có tác dụng xuống dòng giữa một chuỗi ký tự, và được biểu diễn bởi ký hiệu \n.

Ví dụ cụ thể:

#include <stdio.h>
int main(void) {
char str1[16] = "Hello";
char str2[16] = ", Việt Nam";
printf("%s\n%s", str1, str2);
return 0;
}

Kết quả:

Hello
, Việt Nam

Xóa ký tự xuống dòng trong C

Trong C không tồn tại phương pháp trực tiếp nào để xóa ký tự xuống dòng cả, vì vậy để xóa ký tự xuống dòng trong C, chúng ta cần sử dụng vòng lặp for để tạo ra một hàm xóa ký tự xuống dòng trong C.

Ý tưởng của hàm này đó là sử dụng vòng lặp để lấy từng ký tự trong chuỗi, và nếu ký tự đó là một ký tự xuống dòng thì chúng ta thay thế nó bởi một ký tự trắng.

Lưu ý là trong hàm có sử dụng hàm lấy độ dài chuỗi strlen() nên chúng ta cần phải thêm #include <string.h> để load thư viện xử lý string vào. Chúng ta viết hàm như sau:

#include <string.h>
void xoaXuongDongC(char *str) {
//Lấy độ dài chuỗi str
size_t len = strlen(str);

//Tạo vòng lặp và kiểm tra từng ký tự trong chuỗi
int i;
for (i = 0; i <= len; i = i + 1){
if(str[i] == '\n') {
str[i] = ' '; //Thay thế ký tự xuống dòng bằng dấu cách nếu tìm thấy.
}
}
}

Lưu ý là ở hàm trên thì Kiyoshi đã chỉ định một ký trắng để thay thế cho ký tự xuống dòng trong dòng code str[i] = ' ';. Bạn cũng có thể thay thế ký tự trắng bằng các ký tự khác nếu muốn.

Sau khi tạo hàm, chúng ta gọi hàm này và tiến hành xóa ký tự xuống dòng trong chuỗi ký tự C như sau:

#include <stdio.h>

//Tạo hàm xóa ký tự xuống dòng trong C
#include <string.h>
void xoaXuongDongC(char *str) {
//Lấy độ dài chuỗi str
size_t len = strlen(str);

//Tạo vòng lặp và kiểm tra từng ký tự trong chuỗi
int i;
for (i = 0; i <= len; i = i + 1){
if(str[i] == '\n') {
str[i] = ' '; //Thay thế ký tự xuống dòng bằng dấu cách nếu tìm thấy.
}
}
}

//Hàm main()
int main(void) {
char str[16] = "Hello\nViet Nam\n";
printf("%s\n", str);

//Gọi và sử dụng hàm xóa ký tự
xoaXuongDongC(str);

printf("%s", str);

return 0;
}

Kết quả:

Hello
Viet Nam

Hello Viet Nam

Bạn có thể thấy ký tự xuống dòng trong chuỗi "Hello\nViet Nam\n" đã được xóa đi và thay thế bởi dấu cách và in ra màn hình trên cùng một dòng rồi phải không nào?

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách xuống dòng trong C, cách sử dụng ký tự xuống dòng trong C cũng như cách xóa ký tự xuống dòng 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.