STDIO
Tìm kiếm gần đây
    Nội dung
    0
    0
    Chia sẻ
    Nội dung
    0
    0
    Chia sẻ

    Chuyển Một Chuỗi Sang Số Nguyên với atoi trong C++

    Hướng dẫn sử dụng hàm atoi, thư viện cstdlib chuyển một chuỗi thành một số nguyên trong C/C++.
    14/05/2018 19/09/2020 2 phút đọc
    Chuyển Một Chuỗi Sang Số Nguyên với atoi trong C++

    atoi là gì?

    atoi là một hàm thuộc thư viện cstdlib - C Standard General Utilities Library stdlib.h. Hàm này giúp chuyển đổi một chuỗi về số nguyên trong C++.

    Cú pháp

    int atoi(const char * str);

    Trong đó, str là chuỗi cần chuyển đổi.

    Hàm atoi sẽ trả về là dạng giá trị là số nguyên kiểu int. Nếu như không có sự chuyển đổi thích hợp thì phương thức sẽ trả về giá trị là 0.

    Chuyển đổi chuỗi thành số nguyên

    Đầu tiên atoi sẽ xóa bỏ mọi kí tự khoảng trắng (bao gồm  , \t, \n, \v, \f, \r) có trong chuỗi và việc xoá này sẽ lặp lại cho tới khi kí tự đầu tiên không còn là khoảng trắng nữa. Những khoảng trắng còn lại trong chuỗi sẽ không bị xoá đi và các ký tự sau những khoảng trắng này sẽ không được chuyển đổi bởi phương thức này.

    Sau đó, xét kí tự đầu tiên để biểu thị chuỗi cần chuyển thành số âm - hay số dương + và chuyển các kí tự '0' đến '9' về kiểu số tương ứng từ 0 đến 9.

    Ví dụ

    #include <iostream>
    #include <cstdlib>
    using namespace std;

    int main()
    {
    int val1;
    char str1[20] = "1234567";
    val1 = atoi(str1);
    cout << "String value = " << str1 << ", Int value = " << val1 << endl;

    int val2;
    char str2[20] = "STDIO.VN";
    val2 = atoi(str2);
    cout << "String value = " << str2 << ", Int value = " << val2 << endl;

    return 0;
    }

    Kết quả:

    Với str1 gồm những kí tự số nên giá trị của value = 1234567 > 0

    Với str2 do không thể chuyển về số nên giá trị của value = 0

    Lưu ý: với 1 chuỗi gồm cả ký tự lẫn số, atoi sẽ chuyển từ kí số đầu tiên tới kí tự chữ cái đầu tiên trong chuỗi thành số. Trong trường hợp kí tự đầu tiên không phải kí tự số, phương thức atoi sẽ trả về giá trị 0.

    cout << "atoid(\"30A13\"): " << atoi("30A13") << endl;
    cout << "atoid(\"A18\"): " << atoi("A18") << endl;

    Kết quả:

    0 Bình luận
    Modern C++

    Modern C++

    STDIO Training - Đào Tạo Lập Trình C++.

    Khi bạn nhấn vào sản phẩm do chúng tôi đề xuất và mua hàng, chúng tôi sẽ nhận được hoa hồng. Điều này hỗ trợ chúng tôi có thêm kinh phí tạo nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO

    Trang chính

    Công ty TNHH STDIO

    • 30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
      +84 28.36205514 - +84 942.111912
      developer@stdio.vn
    • 383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
      Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012
    ©STDIO, 2013 - 2021