Nhập xuất string trong C++

Hướng dẫn cách nhập xuất string trong C++. Bạn sẽ học được cách sử dụng lệnh cin, cout cũng như hàm getline() để nhập xuất string trong C++ sau bài học này.

Nhập xuất string trong C++*

Giống như việc nhập các loại dữ liệu khác, chúng ta sử dụng lệnh cin để nhập vào một string trong C++ với cú pháp sau đây:

string str;
cin >> str

Trong đó dòng đầu tiên dùng để khai báo biến str có kiểu string, và dòng thứ 2 dùng để gán dữ liệu nhập từ bàn phím vào biến str.

Tương tự, chúng ta sử dụng lệnh cout để xuất vào một string trong C++ với cú pháp sau đây:

cout >> str

Ví dụ, chúng ta viết chương trình nhập xuất string trong C++ như sau:



using

namespace

std

;


int

main

()

{

cout

<<

"Nhap chuoi ky tu: "

;


string

str;

cin

>> str;


cout

<<

"Chuoi ky tu vua nhap: "

<< str;


return

0

;

}


Khi đó màn hình nhập dữ liệu sẽ như sau:

Nhap chuoi ky tu: abcdd


Chuoi ky tu vua nhap: abcdd


Nhập nhiều string trong C++

Để nhập nhiều string trong C++ cách nhau bởi dấu cách, chúng ta viết các string nhập vào cách nhau bởi toán tử >>, khi dùng lệnh cin với cú pháp sau đây:

string str1, str1, str3;
cin >> str1 >> str2 >>str3 ;

Ví dụ, chúng ta viết chương trình nhập nhiều string trong C++ như sau:



using

namespace

std

;


int

main

()

{

cout

<<

"Nhap cac chuoi: "

;

string

str1, str2, str3;

cin

>> str1 >> str2 >>str3 ;

cout

<<

"Cac chuoi vua nhap: "

<<str1<<

' '

<<str2<<

' '

<<str3;

}


Khi đó màn hình nhập dữ liệu sẽ hiện ra. Chúng ta nhập từng string cách nhau bởi dấu cách từ bàn phím như sau:

Nhap cac chuoi: ab cd123 ef8


Cac chuoi vua nhap: ab cd123 ef8


Nhập string có khoảng trắng trong C++ bằng hàm getline

Lệnh cin trong C++ chỉ có tác dụng nhập các string không chứa khoảng trắng. Trong trường hợp cần nhập string chứa khoảng trắng tạo bởi dấu cách, tab hay ký tự xuống dòng, chúng ta sẽ dùng hàm getline() để thay thế.

Hàm getline là một hàm thành viên trong class std:string, có tác dụng nhập toàn bộ một string từ bàn phím vào chương trình C++. Hàm getline sẽ nhận và lưu trữ tonà bộ string nhập vào cho tới khi tìm thấy ký tự phân cách chỉ định hoặc là ký tự xuống dòng \n.

Cú pháp của hàm length trong C++ như sau:

std::getline(std::cin, str, delimiter )

Trong đó:

  • std::cin để chỉ định stream nhận dữ liệu, giúp chúng ta có thể nhận đầu vào tiêu chuẩn từ bàn phím.
  • str là tên biến string sẽ lưu string nhập vào.
  • delimiter là ký tự phân tách sử dụng để tách string nhập vào. Nếu delimiter được lược bỏ thì sử dụng giá trị mặc định là ký tự xuống dòng.

Ví dụ cụ thể, chúng ta lược bỏ đối số delimiter và nhập string có dấu cách trong C++ như sau:



using

namespace

std

;

int

main

()

{


cout

<<

"Nhap chuoi co ky tu trang: "

;

string

str;

getline(

cin

,str);



cout

<<

"Chuoi vua nhap: "

;

cout

<< str;

return

0

;

}


Kết quả:

Nhap chuoi co ky tu trang: I love you


Chuoi vua nhap: I love you


Chúng ta cũng có thể chỉ định delimiter để tách string nhập vào thành các phần khác nhau, ví dụ như chỉ định ký tự trắng (dấu cách) chẳng hạn:



using

namespace

std

;

int

main

()

{


cout

<<

"Nhap chuoi co ky tu trang: "

;

string

str;

getline(

cin

,str,

' '

);



cout

<<

"Chuoi vua nhap: "

;

cout

<< str;

return

0

;

}


Kết quả:

Nhap chuoi co ky tu trang: I love you


Chuoi vua nhap: I


Có thể thấy rõ do string nhập vào được tách ra bởi dấu cách nên chỉ có giá trị đầu tiên được lưu vào biến str mà thôi.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách nhập xuất string 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.