Các bài viết liên quan:
Phương pháp sử dụng hàm stoi()
Để chuyển đổi một chuỗi thành số nguyên trong C++ sử dụng hàm stoi()
. Phương pháp này rất tiện lợi và đơn giản. Dưới đây là cú pháp và ví dụ minh họa:
Cú pháp: int stoi(const string& str, size_t* idx = 0, int base = 10);
str
: Chuỗi cần chuyển đổi thành số nguyên.idx
: Con trỏ đến vị trí đầu tiên không hợp lệ sau chuyển đổi. Nếu giá trị này không phải lànullptr
, nó sẽ được gán giá trị là vị trí đầu tiên không hợp lệ.base
: Hệ số cơ số (mặc định là 10). Có thể sử dụng các giá trị từ 2 đến 36.
Ví dụ:
#include <iostream> #include <string> int main() { std::string str = "12345"; int num = std::stoi(str); std::cout << "Số nguyên: " << num << std::endl; return 0; }
Kết quả:
Số nguyên: 12345
Lưu ý: Nếu chuỗi không thể chuyển đổi thành số nguyên hợp lệ, hàm stoi()
sẽ ném một ngoại lệ std::invalid_argument
hoặc std::out_of_range
. Việc xử lý ngoại lệ trong trường hợp này là rất quan trọng để đảm bảo tính ổn định và đúng đắn của chương trình.
Xem thêm String compareTo trong Java
Phương pháp sử dụng stringstream
Để chuyển đổi một chuỗi thành số nguyên trong C++ sử dụng std::stringstream
. Phương pháp này sử dụng std::stringstream
để thực hiện việc chuyển đổi dữ liệu giữa chuỗi và số nguyên. Dưới đây là cú pháp và ví dụ minh họa:
Cú pháp:
#include <iostream> #include <sstream> int main() { std::string str = "12345"; std::stringstream ss(str); int num; ss >> num; std::cout << "Số nguyên: " << num << std::endl; return 0; }
Ví dụ:
#include <iostream> #include <sstream> int main() { std::string str = "12345"; std::stringstream ss(str); int num; ss >> num; std::cout << "Số nguyên: " << num << std::endl; return 0; }
Kết quả:
Số nguyên: 12345
Lưu ý: Việc sử dụng std::stringstream
cho phép bạn thực hiện các phép chuyển đổi phức tạp hơn, ví dụ như chuyển đổi từ chuỗi nhị phân hoặc hệ thập lục phân thành số nguyên.
Xem thêm String JavaScript
Xử lý ngoại lệ khi chuyển đổi không thành công
Khi chuyển đổi chuỗi thành số nguyên trong C++ sử dụng std::stringstream
, bạn có thể kiểm tra xem chuyển đổi có thành công hay không bằng cách kiểm tra trạng thái của std::stringstream
sau khi thực hiện phép chuyển đổi.
Ví dụ, trong trường hợp chuyển đổi không thành công, std::stringstream
sẽ có trạng thái failbit
hoặc badbit
. Bạn có thể kiểm tra trạng thái này bằng cách sử dụng hàm std::stringstream::fail()
hoặc std::stringstream::bad()
.
Dưới đây là một ví dụ minh họa về việc xử lý ngoại lệ khi chuyển đổi không thành công:
#include <iostream> #include <sstream> int main() { std::string str = "abcde"; std::stringstream ss(str); int num; ss >> num; if (ss.fail()) { std::cout << "Chuyển đổi không thành công" << std::endl; } else { std::cout << "Số nguyên: " << num << std::endl; } return 0; }
Kết quả:
Chuyển đổi không thành công
Trong ví dụ trên, chuỗi “abcde” không thể chuyển đổi thành số nguyên, vì vậy std::stringstream
có trạng thái failbit
và thông báo “Chuyển đổi không thành công” được hiển thị.
Xem thêm Chuyển đổi chuỗi thành Int Swift
Ví dụ về String qua int trong C++
Trong C++ có nhiều cách để chuyển đổi từ chuỗi sang số nguyên, một số trong số đó là:
- Sử dụng hàm
stoi()
: Hàm này là một hàm của thư viện<string>
trong C++11, nó nhận vào một chuỗi và chuyển nó sang kiểu int.
std::string str = "123"; int num = std::stoi(str); std::cout << num << std::endl; // Output: 123
- Sử dụng hàm
atoi()
: Hàm này là một hàm của thư viện<cstdlib>
, nó nhận vào một chuỗi và chuyển nó sang kiểu int.
std::string str = "123"; int num = atoi(str.c_str()); std::cout << num << std::endl; // Output: 123
- Sử dụng số nguyên trong C++11:
std::string str = "123"; int num = std::stoi(str);
- Sử dụng stringstream:
std::string str = "123"; std::stringstream ss(str); int num; ss >> num; std::cout << num << std::endl; // Output: 123
- Sử dụng sscanf()
std::string str = "123"; int num; sscanf(str.c_str(),"%d", &num); std::cout << num << std::endl; // Output: 123
Các cách trên là các cách đơn giản và phổ biến để chuyển đổi từ chuỗi sang số nguyên trong C++. Tuy nhiên, khi sử dụng các hàm như stoi()
và atoi()
, bạn cần chú ý đến việc kiểm tra lỗi để đảm bảo chuỗi chuyển đổi là hợp lệ. Ví dụ, nếu chuỗi chứa ký tự không phải là số thì hàm sẽ trả về giá trị ngoại lệ và gây ra lỗi trong chương trình.
Còn nếu sử dụng sscanf() và stringstream, bạn cần chú ý đến việc kiểm tra giá trị trả về của hàm để đảm bảo chuyển đổi thành công.
Xem thêm String trong Python