strtol 函式用法
阿新 • • 發佈:2018-12-27
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"。
參考資料: