共用方式為


atoi、_atoi_l、_wtoi、_wtoi_l

轉換字串為整數。

int atoi(
   const char *str 
);
int _wtoi(
   const wchar_t *str 
);
int _atoi_l(
   const char *str,
   _locale_t locale
);
int _wtoi_l(
   const wchar_t *str,
   _locale_t locale
);

參數

  • str
    要轉換的字串。

  • locale
    要使用的地區設定。

傳回值

每個函式會傳回將輸入字元解譯為數字所產生的 int 值。 如果輸入無法轉換為該類型的值,atoi 和**_wtoi** 的傳回值為 0。

在處理大型負整數值的溢位的情況下,則會傳回 LONG_MIN 。 atoi_wtoi 傳回 INT_MAX 和 INT_MIN 在這些情況。 在所有超出範圍的情況下,errno 會設為 ERANGE。 如果傳入的參數是 NULL,則會叫用無效的參數處理常式,如參數驗證中所述。 如果允許繼續執行,這些函式會將 errno 設定為 EINVAL 並傳回 -0。

備註

這些函式會將字元字串轉換為整數值(atoi和_wtoi)。 輸入字串是可解譯為指定類型的數值的字元序列。 函式在遇到第一個無法辨識為數字一部分的字元時,會停止讀取輸入字串。 這個字元可能是終止字串的 null 字元 ('\0' 或 L'\0')。

atoi 和 和**_wtoi** 的 str 引數有下列形式:

[whitespace] [sign] [digits]]

whitespace 包含空格或定位字元,這些字元會被忽略。sign 是加號 (+) 或減號 (–);digits 是一個或多個數字。

這些以 _l 後綴的函式版本除了使用傳入的地區設定以外行為相同。 如需詳細資訊,請參閱地區設定

一般文字常式對應

TCHAR.H 常式

_UNICODE & _MBCS 未定義

_MBCS 已定義

_UNICODE 已定義

_tstoi

atoi

atoi

_wtoi

_ttoi

atoi

atoi

_wtoi

需求

常式

必要的標頭

atoi

<stdlib.h>

_atoi_l, _wtoi, _wtoi_l

<stdlib.h> 或 <wchar.h>

範例

這個程式會示範如何使用 atoi 函式,將儲存為字串的數字轉換為值。

// crt_atoi.c
// This program shows how numbers 
// stored as strings can be converted to
// numeric values using the atoi functions.

#include <stdlib.h>
#include <stdio.h>
#include <errno.h>

int main( void )
{
    char    *str = NULL;
    int     value = 0;

    // An example of the atoi function.
    str = "  -2309 ";
    value = atoi( str );
    printf( "Function: atoi( \"%s\" ) = %d\n", str, value );

    // Another example of the atoi function.
    str = "31412764";
    value = atoi( str );
    printf( "Function: atoi( \"%s\" ) = %d\n", str, value );

    // Another example of the atoi function 
    // with an overflow condition occuring.
    str = "3336402735171707160320";
    value = atoi( str );
    printf( "Function: atoi( \"%s\" ) = %d\n", str, value );
    if (errno == ERANGE)
    {
       printf("Overflow condition occurred.\n");
    }
}
  

.NET Framework 對等用法

請參閱

參考

資料轉換

浮點支援

地區設定

_ecvt

_fcvt

_gcvt

setlocale、_wsetlocale

_atodbl、_atodbl_l、_atoldbl、_atoldbl_l、_atoflt _atoflt_l