Linux C function() 參考手冊:字符串轉換篇-strtol(將字串轉換成長整數)
Linux C function() 參考手冊:字符串轉換篇-strtol(將字串轉換成長整數)
資料來源:http://people.cs.nctu.edu.tw/~yslin/library/linuxc/main.htm
線上執行:http://www.tutorialspoint.com/compile_c_online.php
code2html:http://tohtml.com/
相關函數
atof,atoi,atol,strtod,strtoul
表頭文件
#include<stdlib.h>
定義函數
long int strtol(const char *nptr,char **endptr,int base);
函數說明
strtol()會將參數nptr字符串根據參數base來轉換成長整型數。參數base範圍從2至36,或0。參數base代表採用的進制方式,如base值為10則採用10進制,若base值為16則採用16進制等。當base值為0時則是採用10進制做轉換,但遇到如’0x’前置字符則會使用16進制做轉換。一開始strtol()會掃描參數nptr字符串,跳過前面的空格字符,直到遇上數字或正負符號才開始做轉換,再遇到非數字或字符串結束時(‘\0’)結束轉換,並將結果返回。若參數endptr不為NULL,則會將遇到不合條件而終止的nptr中的字符指針由endptr返回。
返回值
返回轉換後的長整型數,否則返回ERANGE並將錯誤代碼存入errno中。
附加說明
ERANGE指定的轉換字符串超出合法範圍。
範例
/* 將字符串a,b,c 分別採用10,2,16進制轉換成數字*/
#include <stdio.h>
#include <stdlib.h>
main()
{
char a[]="1000000000";
char b[]="1000000000";
char c[]="ffff";
printf("a=%d\n",strtol(a,NULL,10));
printf("b=%d\n",strtol(b,NULL,2));
printf("c=%d\n",strtol(c,NULL,16));
}