相關函數: 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 進制(字符串以10進製表示),若base值爲16則採用16進制(字符串以16進製表示) 。當base值爲0時則是採用10進製作轉換,但遇到如''0x''前置字符則會使用16進 製作轉換。一開始strtol()會掃描參數nptr字符串,跳過前面的空格字符,直到 趕上數字或正負符號纔開始作轉換,再遇到非數字或字符串結束時(''\0'')結束 轉換,並將結果返回。若參數endptr不爲NULL,則會將遇到不合條件而終止的 nptr中的字符指針由endptr返回。 返回值: 返回轉換後的長整型數,不然返回ERANGE並將錯誤代碼存入errno中 。 附加說明: ERANGE指定的轉換字符串超出合法範圍。 將字符串a, b, c 分別採用10, 2, 16進制轉換成數字 ------------------------------------------------ #include <stdlib.h> #include <stdio.h> main() { char a[] = "100"; char b[] = "100"; char c[] = "ffff"; printf("a = %d\n", strtol(a, NULL, 10)); //100 printf("b = %d\n", strtol(b, NULL, 2)); //4 printf("c = %d\n", strtol(c, NULL, 16)); //65535 } "100" ---> 100 (Dec) ---> 100 (Dec) "100" ---> 100 (BIN) ---> 4 (Dec) "ffff"---> ffff(Hex) ---> 65535(Dec)