Để chuyển số thành string hay chuyển string thành số bạn có thể sử dụng hàm có sẵn hoặc tự cài đặt, bài viết này mình sẽ hướng dẫn các bạn những hàm thông dụng trong việc chuyển đổi số và xâu ký tự.
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 <string>
using namespace std;
int main() {
string s1 = "454545";
string s2 = "-454545";
string s3 = "454545azbook.org";
int n1 = stoi(s1);
int n2 = stoi(s2);
int n3 = stoi(s3);
cout << n1 << endl;
cout << n2 << endl;
cout << n3 << endl;
return 0;
}
Output :
-454545
454545
stoll() : Chuyển string thành số long long
Ví dụ :
#include <string>
using namespace std;
int main() {
string s1 = "100000000000000000";
string s2 = "-100000000000000000";
string s3 = "4545454545454545azbook.org";
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
4545454545454545
stod() : Chuyển string thành số double
Ví dụ :
#include <string>
#include <iomanip>
int main() {
string s1 = "100.123";
string s2 = "-100.456";
string s3 = "454545.45azbook.org";
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.456
454545.45
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 <string>
#include <iomanip>
int main() {
string s = to_string(n);
cout << s << endl;
return 0;
}
Output :