1. 程式人生 > >strtol 函式用法

strtol 函式用法

strtol是一個C語言函式,作用就是將一個字串轉換為長整型long,其函式原型為:

long int strtol (const char* str, char** endptr, int base);

下面我們來看下每個引數的意義:

str是要轉換的字元

enptr是指向第一個不可轉換的字元位置的指標

base的基數,表示轉換成為幾進位制的數

兩點注意:

  • 當 base 的值為 0 時,預設採用 10 進位制轉換,但如果遇到 '0x' / '0X' 前置字元則會使用 16 進位制轉換,遇到 '0' 前置字元則會使用 8 進位制轉換。
  • 若endptr 不為NULL,則會將遇到的不符合條件而終止的字元指標由 endptr 傳回;若 endptr 為 NULL,則表示該引數無效,或不使用該引數。
string v = "1.10.2";
char *c = (char*)v.c_str();

long d = strtol(c, &c, 10);
printf("%d\n", d);
printf("%s\n", c);

上面這段程式碼先定義了一個值為"1.10.2"的字串c,然後呼叫strtol後,此時的d為1,字串c變成了".10.2"

參考資料: