C語言stdlib頭文件(stdlib.h)中strtol函數的用法及代碼示例。
用法:
long int strtol (const char* str, char** endptr, int base);
將字符串轉換為長整數
long int
價值。如果endptr不是空指針,該函數還會設置endptr指向數字後的第一個字符。該函數首先丟棄必要數量的空白字符,直到找到第一個非空白字符為止。然後,從該字符開始,采用盡可能多的有效字符,這些字符遵循的語法取決於base參數,並將其解釋為數值。最後,一個指向第一個字符的指針,該字符位於整數表示形式之後str存儲在由指向的對象中endptr。
如果值base如果為零,則預期的語法類似於整數常量的語法,該整數常量由以下各項組成:
- 可選的符號字符(
+
或者-
) - 可選的前綴,表示八進製或十六進製的基數(
"0"
或者"0x"/"0X"
分別) - 十進製數字序列(如果未指定基本前綴)或八進製或十六進製數字(如果存在特定前綴)
如果base值介於2到36之間,表示整數的格式應為表示指定基數的整數所需的任何有效數字和/或字母(從
'0'
直到'z'
/'Z'
對於基數36)。序列可以可選地在前麵加上一個符號(可以是+
或者-
) 而如果base是16,可選"0x"
或者"0X"
字首。如果第一個非空格字符序列str不是上麵定義的有效整數,或者如果不存在這樣的序列,因為str為空或僅包含空格字符,不執行任何轉換。
對於除以外的語言環境
"C"
在語言環境中,可以接受其他主題序列形式。參數
- str
- C-string以整數表示。
- endptr
- 引用類型的對象
char*
,其值由函數設置為中的下一個字符str數值之後。
此參數也可以是空指針,在這種情況下不使用。 - base
- 確定有效字符及其解釋的數字基數(基數)。
如果是這樣0
,所用的基數由序列中的格式確定(請參見上文)。
返回值
成功後,函數將轉換後的整數返回為long int
值。如果無法執行有效的轉換,則返回零值(
0L
)。如果讀取的值超出可表示的值範圍達
long int
,函數返回LONG_MAX或者LONG_MIN(在<climits>), 和errno被設定為ERANGE。示例
/* strtol example */
#include <stdio.h> /* printf */
#include <stdlib.h> /* strtol */
int main ()
{
char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";
char * pEnd;
long int li1, li2, li3, li4;
li1 = strtol (szNumbers,&pEnd,10);
li2 = strtol (pEnd,&pEnd,16);
li3 = strtol (pEnd,&pEnd,2);
li4 = strtol (pEnd,NULL,0);
printf ("The decimal equivalents are: %ld, %ld, %ld and %ld.\n", li1, li2, li3, li4);
return 0;
}
輸出:
The decimal equivalents are: 2001, 6340800, -3624224 and 7340031 |
相關用法
- C語言 atof用法及代碼示例
- C語言 atoi用法及代碼示例
- C語言 atol用法及代碼示例
- C語言 atoll用法及代碼示例
- C語言 strtod用法及代碼示例
- C語言 strtof用法及代碼示例
- C語言 strtold用法及代碼示例
- C語言 strtoll用法及代碼示例
- C語言 strtoul用法及代碼示例
- C語言 strtoull用法及代碼示例
- C語言 rand用法及代碼示例
- C語言 srand用法及代碼示例
- C語言 calloc用法及代碼示例
- C語言 free用法及代碼示例
- C語言 malloc用法及代碼示例
- C語言 realloc用法及代碼示例
- C語言 abort用法及代碼示例
- C語言 atexit用法及代碼示例
- C語言 at_quick_exit用法及代碼示例
- C語言 exit用法及代碼示例
- C語言 getenv用法及代碼示例
- C語言 quick_exit用法及代碼示例
- C語言 system用法及代碼示例
- C語言 _Exit用法及代碼示例
- C語言 bsearch用法及代碼示例
- C語言 qsort用法及代碼示例
- C語言 abs用法及代碼示例
- C語言 div用法及代碼示例
- C語言 labs用法及代碼示例
- C語言 ldiv用法及代碼示例
- C語言 llabs用法及代碼示例
- C語言 lldiv用法及代碼示例
- C語言 mblen用法及代碼示例
- C語言 mbtowc用法及代碼示例
- C語言 wctomb用法及代碼示例
- C語言 wcstombs用法及代碼示例
注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C strtol function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。