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 <iostream>
using namespace std;
int main() {
string
str1 = "Hello";
string str2 =
", Việt Nam";
cout << str1
<<str2;
return 0;
}

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

#include <iostream>
using namespace std;
int main() {
string str1 = "Hello";
string str2 = ", Việt Nam";
cout << 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 <iostream>
using namespace std;
int main() {
strin
g str1 = "Hello";
string str2 = ", Việt Nam";//Lỗi khi xuống dòng giữa từ khóa "string"
cout << str1 <<str2;
return 0;
}

>>> main.cpp:4:5: error: ‘strin’ was not declared in this scope; did you mean ‘stdin’?

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

#include <iostream>
using namespace std;
int main() {
string str1 = "Hello";
string str
2 = ", Việt Nam";//Lỗi khi xuống dòng giữa tên biến "str2"
cout << str1 <<str2;
return 0;
}

>>>main.cpp:6:5: error: expected initializer before numeric constant

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

#include <iostream>
using namespace std;
int main() {
string str1 = "Hello
\n"; //Lỗi khi xuống dòng giữa chuỗi chứa ký tự
string str2 = ", Việt Nam";
cout << str1 <<str2;
return 0;
}

>>> main.cpp:4:19: error: missing terminating " character

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

Ký tự xuống dòng \n

Ở 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 <iostream>
using namespace std;
int main() {
char str1[16] = "Hello\n";
char str2[16] = ", Việt Nam";
cout << str1 <<str2;
return 0;
}

Kết quả:

Hello
, Việt Nam

Xuống dòng bằng endl trong C++

Ngoài cách ghi ký tự xuống dòng \n trực tiếp tại vị trí cần xuống dòng giữa chuỗi như trên, thì chúng ta cũng có thể sử dụng tới lệnh endl trong namespace std.

Lệnh endl được sử dụng kèm với lệnh xuất dữ liệu cout, với cú pháp như sau:

cout << ... << endl;

Trong đó ở giữa cặp cout và endl là dữ liệu cần in xuống dòng ra màn hình.

Ví dụ cụ thể:

#include <iostream>
using namespace std;
int main() {
char str1[16] = "Hello";
char str2[16] = ", Việt Nam";
cout << str1 <<endl <<str2;
return 0;
}

Kết quả cũng tương tự như khi chúng ta dùng \n như sau:

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.

Và chúng ta viết hàm như sau:

void xoaXuongDongC(std::string &str) {   
//Tạo vòng lặp và kiểm tra từng ký tự trong chuỗi
int i;
for (i = 0; i <= str.length(); 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 <iostream>
using namespace std;

//Tạo hàm xóa ký tự xuống dòng trong C++
#include <cstring>
void xoaXuongDongC(std::string &str) {
//Tạo vòng lặp và kiểm tra từng ký tự trong chuỗi
int i;
for (i = 0; i <= str.length(); 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() {
string str = "Hello\nViet Nam\n";
cout << str<<endl;

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

cout << str<<endl;

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.