Hàm strol () được sử dụng để chuyển đổi chuỗi thành số nguyên dài. Nó đặt con trỏ trỏ đến ký tự đầu tiên sau ký tự cuối cùng. Cú pháp như dưới đây. Hàm này có trong thư viện cstdlib.
long int strtol(const char* str, char ** end, int base)
Hàm này có ba đối số. Những đối số này giống như bên dưới -
- str: Đây là phần bắt đầu của một chuỗi.
- str_end: Hàm str_end được hàm đặt thành ký tự tiếp theo, sau ký tự hợp lệ cuối cùng, nếu có bất kỳ ký tự nào, nếu không thì null.
- cơ sở: Điều này chỉ định cơ sở. Các giá trị cơ bản có thể là (0, 2, 3,…, 35, 36)
Hàm này trả về giá trị int dài đã được chuyển đổi. Khi ký tự trỏ đến NULL, nó sẽ trả về 0.
Ví dụ
#include <iostream> #include<cstdlib> using namespace std; main() { //Define two string char string1[] = "777HelloWorld"; char string2[] = "565Hello"; char* End; //The end pointer int base = 10; int value; value = strtol(string1, &End, base); cout << "The string Value = " << string1 << "\n"; cout << "Long Long Int value = " << value << "\n"; cout << "End String = " << End << "\n"; //remaining string after long long integer value = strtol(string2, &End, base); cout << "\nThe string Value = " << string2 << "\n"; cout << "Long Long Int value = " << value << "\n"; cout << "End String = " << End; //remaining string after long long integer }
Đầu ra
The string Value = 777HelloWorld Long Long Int value = 777 End String = HelloWorld The string Value = 565Hello Long Long Int value = 565 End String = Hello
Bây giờ Chúng ta hãy xem ví dụ với một giá trị cơ bản khác. Ở đây cơ số là 16. Bằng cách lấy chuỗi của cơ số đã cho, nó sẽ in ở định dạng thập phân.
Ví dụ
#include <iostream> #include<cstdlib> using namespace std; main() { //Define two string char string1[] = "5EHelloWorld"; char string2[] = "125Hello"; char* End; //The end pointer int base = 16; int value; value = strtol(string1, &End, base); cout << "The string Value = " << string1 << "\n"; cout << "Long Long Int value = " << value << "\n"; cout << "End String = " << End << "\n"; //remaining string after long long integer value = strtol(string2, &End, base); cout << "\nThe string Value = " << string2 << "\n"; cout << "Long Long Int value = " << value << "\n"; cout << "End String = " << End; //remaining string after long long integer }
Đầu ra
The string Value = 5EHelloWorld Long Long Int value = 94 End String = HelloWorld The string Value = 125Hello Long Long Int value = 293 End String = Hello
Ở đây, chuỗi chứa 5E nên giá trị của nó là 94 ở dạng thập phân và chuỗi thứ hai chứa 125. Đây là 293 ở dạng thập phân.