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

strtol函式用法

之前想用C寫MD5函式用法,中間設計大量進位制轉換的內容,於是就查到了strtol這個函式

但是發現之前對其認識上有一些偏頗,所以把它的用法記錄下來

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

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

str是要轉換的字元

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

base的基數,表示要轉換的是幾進位制的數

這裡有幾個注意點:
首先它最終轉換的結果是十進位制的數字
其次這裡的base指的是str字元中你要轉換的是那些東西


即若base為2,並不代表你把str裡的東西轉化為二進位制,而是你的str中為"0" "1"的字元才是有效的。
可以看一個例子:

    long int number;
	char heihei[] = "010345e10101";
	number = strtol(heihei,NULL,2);
	printf("%ld\n", number);

其結果為:
結果圖片

即其只掃描到了010,然後把010作為二進位制轉化為10進位制,後面的345e都為非法字元,都不能進行轉換。