strtol函式用法
阿新 • • 發佈:2018-11-04
之前想用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都為非法字元,都不能進行轉換。