Computer >> Máy Tính >  >> Lập trình >> C ++

hàm strtol () trong C ++

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.