1. Chuyển Đổi Xâu Thành Số
Trong quá trình học lập trình đôi khi bạn sẽ cần chuyển đổi xâu string thành một số nguyên hoặc một số thực, C++ đã cung cấp sẵn cho bạn các hàm này và bạn có thể sử dụng ngay.
Lưu ý là các hàm này chỉ có từ chuẩn C++11 trở lên tới các phiên bản sau này nên hãy đảm bảo việc bạn có thể sử dụng C++ khi đi thi, nếu không bạn cần dự trù việc tự cài đặt nó.
Tổng hợp các hàm thông dụng chuyển xâu thành số :
| Hàm | Chức năng |
| stoi() | Chuyển string thành số int |
| stoll() | Chuyển string thành số long long |
| stol() | Chuyển string thành số long (tương tự int) |
| stof() | Chuyển string thành số float |
| stod() | Chuyển string thành số double |
| stold() | Chuyển string thành số long double |
| stoul() | Chuyển string thành số long không dấu |
| stoull() | Chuyển string thành số long long không dấu |
Tuy nhiên chủ yếu bạn sử dụng 3 hàm : stoi(), stoll() và stod()
stoi() : Chuyển string thành số int
Lưu ý khi sử dụng stoi() :
- Dữ liệu cần đảm bảo có thể lưu trong giới hạn của int, nếu không sẽ gây ra ngoại lệ std::out_of_range. Tương tự nếu xâu rỗng cũng sẽ gây lỗi.
- Nếu xâu có thêm chữ cái hoặc ký tự đặc biệt không phải chữ số thì hàm sẽ convert tới kí tự đặc biệt đó mà thôi\
Ví dụ :
#include "iostream" #include "string" using namespace std; int main(){ string s1 = "282828"; string s2 = "-292828"; string s3 = "282828tech.com.vn"; int n1 = stoi(s1); int n2 = stoi(s2); int n3 = stoi(s3); cout << n1 << endl; cout << n2 << endl; cout << n3 << endl; return 0; }
Output :
282828 -292828 282828
stoll() : Chuyển string thành số long long
Ví dụ :
#include "iostream" #include "string" using namespace std; int main(){ string s1 = "100000000000000000"; string s2 = "-100000000000000000"; string s3 = "2828282828282828tech.com.vn"; long long n1 = stoll(s1); long long n2 = stoll(s2); long long n3 = stoll(s3); cout << n1 << endl; cout << n2 << endl; cout << n3 << endl; return 0; }
Output :
100000000000000000 -100000000000000000 2828282828282828
stod() : Chuyển string thành số double
Ví dụ :
#include "iostream" #include "string" #include "iomanip" using namespace std; int main(){ string s1 = "100.123"; string s2 = "-100.456"; string s3 = "28282.28tech.com.vn"; double n1 = stod(s1); double n2 = stod(s2); double n3 = stod(s3); cout << fixed << setprecision(3) << n1 << endl; cout << fixed << setprecision(3) << n2 << endl; cout << fixed << setprecision(3) << n3 << endl; return 0; }
Output :
100.123 -100.456 28282.280
2. Chuyển Đổi Số Thành Xâu
Hàm to_string() trong C++ sẽ giúp bạn chuyển đối số thành xâu. Lưu ý hàm này chỉ hỗ trợ từ C++11 trở lên, nếu bạn làm việc với các chuẩn C++11 hoặc mới hơn hay làm bài trên các website chấm bài online thì có thể dùng hàm này một cách thoải mái.
Ví dụ :
#include "iostream" #include "string" #include "iomanip" using namespace std; int main(){ int n = 28282828; string s = to_string(n); cout << s << endl; return 0; }
Output :
28282828Video String :