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.
Tóm Tắt
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ếudelimiter
đượ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.