十進位制字串轉化為無符號整數

2022-09-22 06:51:53 字數 753 閱讀 7457

標頭檔案:#include

strtoul() 函式源自於“string to unsigned long”,用來將字串轉換成無符號長整型數(unsigned long),其原型為:

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

【引數說明】str 為要轉換的字串,endstr 為第一個不能轉換的字元的指標,base 為字串 str 所採用的進位制。

【函式說明】strtoul() 會將引數 str 字串根據引數 base 來轉換成無符號的長整型數(unsigned long)。引數 base 範圍從2 至36,或0。引數 base 代表 str 採用的進位制方式,如 base 值為10 則採用10 進位制,若 base 值為16 則採用16 進位制數等。

strtoul() 會掃描引數 str 字串,跳過前面的空白字元(例如空格,tab縮排等,可以通過 isspace() 函式來檢測),直到遇上數字或正負符號才開始做轉換,再遇到非數字或字串結束時('\0')結束轉換,並將結果返回。

兩點注意:

#include

#include

int main ()

執行結果:

enter an unsigned number: 017cyuyan

value entered: 15.

由於 base 引數被設定為 0 並且字串“017cyuyan”以“0”開頭,所以採用 8 進位制轉換。

原文