Chuyển chuỗi thành số trong C++ (atoi,atof,atol)

Hướng dẫn cách chuyển chuỗi thành số trong C++. Bạn sẽ học được cách sử dụng hàm scout << () và itoa() để **chuyển chuỗi thành số trong C++** sau bài học này.

Chúng ta có 3 phương pháp để chuyển chuỗi thành số trong C++ như sau:

  • Hàm atoi(): Chuyển string sang int trong C++
  • Hàm atol(): Chuyển string sang long trong C++
  • Hàm atof(): Chuyển string sang float trong C++

Chuyển string sang int trong C++ | hàm atoi()

Hàm atoi() là một hàm có sẵn trong header file cstdlib, giúp chúng ta chuyển string sang int trong C++.

Chúng ta sử dụng hàm strcpy() để chuyển string sang int với cú pháp sau đây:

atoi(str)

Trong đó str là chuỗi cần chuyển thành số.

Nếu chuỗi chỉ định có thể chuyển sang int thì hàm atoi() sẽ chuyển chuỗi đó sang kiểu số nguyên. Tuy nhiên nếu chuỗi đó không thể chuyển sang kiểu số nguyên int thì giá trị 0 sẽ được trả về.

Lại nữa, trong trường hợp chuỗi chỉ định chứa cả thành phần có thể và không thể chuyển sang kiểu int thì hàm atoi() sẽ chỉ chuyển phần string có thể chuyển thành int tính từ đầu chuỗi mà thôi.

Và nếu như ở đầu chuỗi chỉ định chứa ký tự trắng (dấu cách, tab hay xuống dòng) thì hàm atoi() sẽ bỏ qua chúng cho tới khi tìm thấy ký tự khác ký tự trắng đầu tiên xuất hiện.

Và chúng ta cần phải viết thêm dòng #include <cstdlib> để load header file cstdlib để có thể sử dụng được hàm atoi() trong chuơng trình.

Ví dụ cụ thể:



using

namespace

std

;


int

main

()


{


char

str0[] =

"123"

;



char

str1[] =

"123"

;



char

str2[] =

"-123ab"

;



char

str3[] =

" \n\t123ab"

;



char

str4[] =

"a123b"

;


int

num0 = atoi(str0);

int

num1 = atoi(str1);

int

num2 = atoi(str2);

int

num3 = atoi(str3);

int

num4 = atoi(str4);


cout

<< str0<<

" => "

<< num0 <<

endl

;

cout

<< str1<<

" => "

<< num1 <<

endl

;

cout

<< str2<<

" => "

<< num2 <<

endl

;

cout

<< str3<<

" => "

<< num3 <<

endl

;

cout

<< str4<<

" => "

<< num4 <<

endl

;


return

0

;

}


Kết quả:

123 => 123


123 => 123


-123ab => -123



123ab => 123


a123b => 0


Chuyển string sang long trong C++

Tương tự như với hàm atoi() thì chúng ta có các hàm atol() để chuyển string sang long trong C++.

Cú pháp và cách sử dụng của hàm này thì hoàn toàn tương tự như với hàm atoi() như sau:

atol(str)

Ví dụ cụ thể:




using

namespace

std

;


int

main

()

{

long

val;

char

str[

20

];


strcpy

(str,

"11111.22abac"

);

val = atof(str);


cout

<< str <<

" => "

<< val;


return

(

0

);

}




Chuyển string sang float trong C++

Tương tự như với hàm atoi() thì chúng ta có các hàm atof() để chuyển string sang float trong C++.

Cú pháp và cách sử dụng của hàm này thì hoàn toàn tương tự như với hàm atoi() như sau:

atoi(str)

Ví dụ cụ thể:




using

namespace

std

;


int

main

()

{

float

val;

char

str[

20

];


strcpy

(str,

"11.22abac"

);

val = atof(str);


cout

<< str <<

" => "

<< val;


return

(

0

);

}




Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách chuyển chuỗi thành số trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

mojiretsu6.html)

mojiretsu6.html)