當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C語言 strtoll用法及代碼示例

C語言stdlib頭文件(stdlib.h)中strtoll函數的用法及代碼示例。

用法:

long long int strtoll (const char* str, char** endptr, int base);
將字符串轉換為long long整數
解析C-stringstr將其內容解釋為指定內容的整數base,它以type的值形式返回long long int。如果endptr不是一個空指針,該函數還會設置endptr指向數字後的第一個字符。

該函數的運作方式類似於strtol解釋字符串,但產生類型的數字long long int(參考strtol有關解釋過程的詳細信息)。

參數

str
C-string以整數表示。
endptr
引用類型的對象char*,其值由函數設置為中的下一個字符str數值之後。
此參數也可以是空指針,在這種情況下不使用。
base
確定有效字符及其解釋的數字基數(基數)。
如果是這樣0,所用的底數由序列中的格式決定(請參見strtol有關詳細信息)。

返回值

成功後,函數將轉換後的整數返回為long long int值。
如果無法執行有效的轉換,則返回零值(0LL)。
如果讀取的值超出可表示的值範圍達long long int,函數返回LLONG_MAX或者LLONG_MIN(在<climits>), 和errno被設定為ERANGE

示例

/* strtoll example */
#include <stdio.h>      /* printf, NULL */
#include <stdlib.h>     /* strtoll */

int main ()
{
  char szNumbers[] = "1856892505 17b00a12b -01100011010110000010001101100 0x6fffff";
  char* pEnd;
  long long int lli1, lli2, lli3, lli4;
  lli1 = strtoll (szNumbers, &pEnd, 10);
  lli2 = strtoll (pEnd, &pEnd, 16);
  lli3 = strtoll (pEnd, &pEnd, 2);
  lli4 = strtoll (pEnd, NULL, 0);
  printf ("The decimal equivalents are: %lld, %lld, %lld and %lld.\n", lli1, lli2, lli3, lli4);
  return 0;
}


可能的輸出:

The decimal equivalents are: 1856892505, 6358606123, -208340076 and 7340031



相關用法


注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C strtoll function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。