Hàm Stol () trong C ++

Ham Stol Trong C



C ++ là một trong những ngôn ngữ lập trình phổ biến nhất và lâu đời nhất được sử dụng để phát triển các ứng dụng hiệu suất cao. Nó được sử dụng giữa các lập trình viên có chuyên môn cao và các nhà phát triển mới làm quen. Nó chủ yếu được sử dụng trong phát triển trò chơi và là một lựa chọn lý tưởng để phát triển hệ điều hành. Khi viết mã bằng ngôn ngữ C ++, bạn có thể bắt gặp việc chuyển đổi dữ liệu từ kiểu này sang kiểu khác. Trong bài này, bạn sẽ học cách chuyển một chuỗi thành một số nguyên dài. Khá khó để chuyển đổi một chuỗi thành bất kỳ định dạng nào khác. Tuy nhiên, ngôn ngữ lập trình C ++ cung cấp một cách nhanh chóng và hiệu quả để chuyển đổi chuỗi thành số nguyên.

Hàm stol trong C ++

Stol là một hàm tích hợp C ++ được cung cấp trong thư viện std. Nó chuyển đổi chuỗi thành số nguyên dài. Nó chuyển đổi nội dung chuỗi thành một số nguyên của cơ sở được chỉ định và trả về một giá trị số nguyên dài. Nó nhận ba tham số, một là chuỗi đầu vào, thứ hai là tham số đối tượng và tham số thứ ba là cơ sở số. Cú pháp của hàm stol được đưa ra dưới đây, hãy xem:









Hàm stol nhận ba tham số: input_string, size và base. “Input_string” đại diện cho chuỗi đầu vào cần được chuyển đổi thành một số nguyên dài.



Tham số 'size' đại diện cho đối tượng kiểu size_t mang vị trí ký tự tiếp theo trong chuỗi đầu vào sau giá trị số. Nó có thể là một con trỏ null nếu nó không được yêu cầu sử dụng.





Tham số thứ ba, tham số 'base' đại diện cho cơ sở mà chuỗi cần được diễn giải. Ví dụ, nếu cơ số “2” được cho, chuỗi sẽ được hiểu là số nguyên cơ số 2. Giá trị mặc định của tham số cơ sở là 10 và nếu 0 được cung cấp thì giá trị cơ sở sẽ được xác định theo định dạng trong chuỗi. Hàm stol trả về số nguyên dài đại diện cho giá trị int của một chuỗi nhất định.

Bây giờ, chúng ta hãy khám phá một số ví dụ để hiểu cách hoạt động của hàm stol trong C ++.



Ví dụ 1

Trong ví dụ này, chúng tôi sẽ cung cấp các chuỗi thập phân và thập lục phân để kiểm tra cách hàm stol chuyển đổi chúng thành các số nguyên thập phân và thập lục phân.

“Dec = 123456789” là một chuỗi thập phân và được chuyển đổi thành một số nguyên dài bằng cách sử dụng hàm stol stol (dec, & size). Lưu ý rằng cơ số không được cung cấp trong hàm dưới dạng tham số đầu vào, do đó sử dụng cơ số 10 mặc định để chuyển đổi chuỗi thành số thập phân. Tuy nhiên, để chuyển đổi chuỗi từ số thập lục phân sang số thập phân, cơ số 16 được cung cấp làm tham số đầu vào stol (hex, nullptr, 16). Như chúng ta đã biết, cơ số 16 đại diện cho một số thập lục phân.

#include

#include

#include

int chính ( )

{

std :: sợi dây Tháng mười hai = '123456789' ;
std :: sợi dây hex = 'a2bf3c' ;
std :: sợi dây :: size_type kích thước ;
Dài lidec = std :: bàn ( Tháng mười hai, & kích thước ) ;
Dài lihex = std :: bàn ( hex, nullptr , 16 ) ;
std :: cout << 'Nhập chuỗi thập phân' << Tháng mười hai << 'được chuyển đổi thành số nguyên dài' << lidec << ' \N ' ;
std :: cout << 'Nhập chuỗi thập lục phân' << hex << 'được chuyển đổi thành số nguyên dài' << lihex << ' \N ' ;
trở về 0 ;


}

Đây là kết quả sau. Lưu ý rằng chuỗi thập phân “123456789” đã chuyển đổi thành số nguyên dài thập phân “123456789”. Trong khi chuỗi thập lục phân “a2bf3c” được chuyển đổi thành số thập lục phân “10665788”. Dưới đây là các bước bắt buộc mà bạn có thể làm theo để tìm hiểu cách chuyển đổi được thực hiện bởi hàm stol:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( hai × 16 ) + ( mười một × 16 ³ ) + ( mười lăm × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

Ví dụ số 2

Trong ví dụ này, chúng ta sẽ chuyển đổi một số nhị phân bằng cách sử dụng hàm stol. Hãy xem mã bên dưới và hiểu cách hoạt động của mã. “1010110110” được cung cấp dưới dạng chuỗi đầu vào và cơ số 2 được cung cấp dưới dạng tham số cơ sở đầu vào stol (bin, & size, 2), đại diện cho số ở định dạng nhị phân. Hàm stol sẽ chuyển đổi số nhị phân thành số thập phân bằng cách làm theo các bước sau:

( 1010110110 ) = ( 1 × hai ) + ( 0 × hai ) + ( 1 × hai ) + ( 0 × hai ) + ( 1 × hai ) + ( 1 × hai ) + ( 0 × hai ³ ) + ( 1 × hai ² ) + ( 1 × hai ¹ ) + ( 0 × hai ) = ( 694 ) ₁₀ #include

#include

#include

int chính ( )

{

std :: sợi dây thùng rác = '1010110110' ;
std :: sợi dây :: size_type kích thước ;
Dài libin = std :: bàn ( thùng rác, & kích thước, hai ) ;
std :: cout << 'Nhập chuỗi nhị phân' << thùng rác << 'được chuyển đổi thành số nguyên dài' << libin << ' \N ' ;
trở về 0 ;


}

Như bạn có thể thấy rằng hàm stol trả về kết quả giống như quá trình chuyển đổi từ nhị phân sang thập phân chung đã làm.

Ví dụ # 3

Trong ví dụ này, chúng ta sẽ xem điều gì sẽ xảy ra nếu chúng ta kiểm tra hàm stol với đầu vào không hợp lệ. Một chuỗi gồm nhiều ký tự sẽ được cung cấp cho hàm stol và 0 sẽ được cung cấp làm giá trị cơ sở để hàm sẽ tự động xác định cơ sở của chuỗi. Đây là mã:

Một tập hợp các ký tự được cung cấp dưới dạng chuỗi đầu vào không được xác định bởi bất kỳ giá trị cơ sở nào, tức là 10, 16, 2, v.v. vì vậy hàm sẽ trả về giá trị lỗi.

#include

#include

#include

int chính ( )

{

std :: sợi dây chr = 'abcdefgh' ;

std :: sợi dây :: size_type kích thước ;
Dài str = std :: bàn ( chr, nullptr , 0 ) ;
std :: cout << 'Chuỗi ký tự đầu vào' << chr << 'được chuyển đổi thành số nguyên dài' << str << ' \N ' ;
trở về 0 ;


}

Xem kết quả bên dưới. Lưu ý rằng trình biên dịch đã đưa ra một ngoại lệ 'không hợp lệ_ đối số' vì hàm không phục vụ cho các chuỗi không thể được xác định với bất kỳ giá trị cơ sở nào.

Ví dụ # 4

Trong ví dụ này, chúng tôi sẽ cung cấp sự kết hợp của đầu vào hợp lệ và không hợp lệ để xem kết quả của hàm stol ().

Chuỗi đầu vào là sự kết hợp của các ký tự hợp lệ và không hợp lệ, “123xf25”. Hàm “0” được cung cấp làm cơ sở đầu vào để hàm tự động xác định cơ sở của chuỗi đầu vào dựa trên loại ký tự.

#include

#include

#include

int chính ( )

{

std :: sợi dây chr = '123xf25' ;
std :: sợi dây :: size_type kích thước ;
Dài str = std :: bàn ( chr, nullptr , 0 ) ;
std :: cout << 'Chuỗi đầu vào ' << chr << 'được chuyển đổi thành số nguyên dài' << str << ' \N ' ;
trở về 0 ;


}

Đây là đầu ra cho thấy hoạt động của hàm stol với sự kết hợp của đầu vào hợp lệ và không hợp lệ:

Lưu ý rằng hàm đã chuyển đổi “123” thành số thập phân “123” và loại bỏ phần còn lại của chuỗi vì nó nhận được đầu vào không hợp lệ “x”. Chuỗi sau ký tự “x” không được chuyển đổi bởi hàm stol, chỉ trả về các ký tự đầu tiên của chuỗi dưới dạng long int.

Sự kết luận

Trong bài đăng này, chúng ta đã khám phá hàm stol của ngôn ngữ lập trình C ++. Với sự trợ giúp của một số ví dụ hữu ích và đơn giản, chúng ta đã học được cách hàm stol hoạt động với các loại đầu vào khác nhau. Hàm stol nhận ba tham số, chuỗi đầu vào sẽ được chuyển đổi, một tham số kích thước đại diện cho vị trí của hàm trong chuỗi và giá trị cơ sở đại diện cho cơ sở của chuỗi đầu vào. Nó trả về giá trị int dài của chuỗi đầu vào.