亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

淺析C語言中strtol()函數與strtoul()函數的用法

2020-01-26 14:57:51
字體:
來源:轉載
供稿:網友

C語言strtol()函數:將字符串轉換成long(長整型數)
頭文件:

#include <stdlib.h>

strtol() 函數用來將字符串轉換為長整型數(long),其原型為:

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

【參數說明】str 為要轉換的字符串,endstr 為第一個不能轉換的字符的指針,base 為字符串 str 所采用的進制。

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

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

兩點注意:

  1. 當 base 的值為 0 時,默認采用 10 進制轉換,但如果遇到 '0x' / '0X' 前置字符則會使用 16 進制轉換,遇到 '0' 前置字符則會使用 8 進制轉換。
  2. 若endptr 不為NULL,則會將遇到的不符合條件而終止的字符指針由 endptr 傳回;若 endptr 為 NULL,則表示該參數無效,或不使用該參數。

【返回值】返回轉換后的長整型數;如果不能轉換或者 str 為空字符串,那么返回 0(0L);如果轉換得到的值超出 long int 所能表示的范圍,函數將返回 LONG_MAX 或 LONG_MIN(在 limits.h 頭文件中定義),并將 errno 的值設置為 ERANGE。

【示例】將字符串轉換成10進制。

#include <stdio.h>#include <stdlib.h>int main (){  char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";  char * pEnd;  long int li1, li2, li3, li4;  li1 = strtol (szNumbers,&pEnd,10);  li2 = strtol (pEnd,&pEnd,16);  li3 = strtol (pEnd,&pEnd,2);  li4 = strtol (pEnd,NULL,0);  printf ("轉換成10進制: %ld、%ld、%ld、%ld/n", li1, li2, li3, li4);  system("pause");  return 0;}

執行結果:
轉換成10進制:

2001、6340800、-3624224、7340031

C語言strtoul()函數:將字符串轉換成unsigned long(無符號長整型數)
頭文件:

#include <stdlib.h>

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')結束轉換,并將結果返回。

兩點注意:

  1. 當 base 的值為 0 時,默認采用 10 進制轉換,但如果遇到 '0x' / '0X' 前置字符則會使用 16 進制轉換,遇到 '0' 前置字符則會使用 8 進制轉換。
  2. 若 endptr 不為NULL,則會將遇到的不符合條件而終止的字符指針由 endptr 傳回;若 endptr 為 NULL,則表示該參數無效,或不使用該參數。本文最后的范例沒有展示 endptr 參數的使用,你可以參考 strtol() 函數的范例來更加直觀地了解 endptr 參數。

【返回值】返回轉換后的無符號長整型數;如果不能轉換或者 str 為空字符串,那么返回 0;如果轉換得到的值超出unsigned long int 所能表示的范圍,函數將返回 ULONG_MAX(在 limits.h 頭文件中定義),并將 errno 的值設置為 ERANGE。

溫馨提示:ANSI C 規范定義了 stof()、atoi()、atol()、strtod()、strtol()、strtoul() 共6個可以將字符串轉換為數字的函數,大家可以對比學習。另外在 C99 / C++11 規范中又新增了5個函數,分別是 atoll()、strtof()、strtold()、strtoll()、strtoull(),在此不做介紹,請大家自行學習。

范例:將輸入的字符串轉換為無符號長整型。

#include <stdio.h>#include <stdlib.h>int main (){  char buffer [256];  unsigned long ul;  printf ("Enter an unsigned number: ");  fgets (buffer, 256, stdin);  ul = strtoul (buffer, NULL, 0);  printf ("Value entered: %lu./n", ul);  system("pause");  return 0;}

運行結果:

Enter an unsigned number: 017cyuyanValue entered: 15.

由于 base 參數被設置為 0 并且字符串“017cyuyan”以“0”開頭,所以采用 8 進制轉換。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av在线高清| 欧美最猛性xxxxx免费| 日本91av在线播放| 久久久久国产视频| 日韩av免费在线观看| 欧美中文字幕在线| 亚洲伊人久久大香线蕉av| 久精品免费视频| 国产原创欧美精品| 日韩精品电影网| 中文欧美在线视频| 日韩av中文字幕在线免费观看| 日韩女在线观看| 精品香蕉一区二区三区| 精品日韩视频在线观看| 国产福利精品在线| 欧美刺激性大交免费视频| 日韩电影在线观看永久视频免费网站| 91探花福利精品国产自产在线| 久久久噜噜噜久久久| 欧美一区二区三区免费观看| 91av视频在线播放| 欧美日韩精品在线视频| 日本精品一区二区三区在线播放视频| 亚洲尤物视频网| 欧美日韩国产一区二区三区| 久久噜噜噜精品国产亚洲综合| 亚洲成人黄色在线| 欧美激情精品久久久久| 久久免费成人精品视频| 久久天堂电影网| 亚洲欧美三级在线| 777午夜精品福利在线观看| 国产精品国产三级国产aⅴ浪潮| 午夜精品国产精品大乳美女| 欧美在线视频播放| 久久视频国产精品免费视频在线| 久久久噜噜噜久久中文字免| 亚洲香蕉伊综合在人在线视看| 欧美成人免费网| 国产成人av在线播放| 91国语精品自产拍在线观看性色| 成人免费福利视频| 国产精品99久久久久久久久久久久| 日本精品久久久| 欧美精品在线网站| 亚洲一区二区少妇| 久久久久久伊人| 国产精品美女av| 97视频免费在线观看| 一区二区三区回区在观看免费视频| 亚洲欧美综合v| 欧美怡春院一区二区三区| 国产成人啪精品视频免费网| 欧美性视频网站| 欧美色videos| 96sao精品视频在线观看| 另类图片亚洲另类| 国产欧美亚洲视频| 欧美成人精品一区二区三区| 亚洲国产精品福利| 日韩在线精品一区| 久久久精品免费| 国产精品久久久久久亚洲调教| 久久亚洲欧美日韩精品专区| 国产欧美婷婷中文| 国产成人激情小视频| 麻豆一区二区在线观看| 国产精品日韩在线播放| 国产日产欧美精品| 国产91精品久久久久| 国产精品99久久99久久久二8| 热久久免费国产视频| 91精品国产综合久久香蕉922| 最近2019免费中文字幕视频三| 成人午夜黄色影院| 4p变态网欧美系列| 欧美激情奇米色| 亚洲精品动漫久久久久| 在线播放日韩欧美| 国产精品91视频| 亚洲精品资源在线| 亚洲国产精彩中文乱码av| 隔壁老王国产在线精品| 国产在线观看精品| 亚洲精品天天看| 欧美极品美女视频网站在线观看免费| 国产精品流白浆视频| 国外成人在线播放| 91午夜在线播放| 亚洲美女免费精品视频在线观看| 97香蕉久久夜色精品国产| 欧美日韩裸体免费视频| 国产免费一区二区三区在线能观看| 日韩中文在线不卡| 成人a级免费视频| 国产精品免费一区二区三区都可以| 日本久久久久亚洲中字幕| 国产精品影院在线观看| 亚洲最新av在线| 亚洲自拍欧美另类| 色综合伊人色综合网站| 热门国产精品亚洲第一区在线| 日韩精品在线视频美女| 国产精品一区二区三区成人| wwwwwwww亚洲| 欧美性69xxxx肥| 日韩av一区二区在线| 久久中文久久字幕| 欧美一级淫片aaaaaaa视频| 久久视频在线播放| 日韩激情av在线播放| 日韩中文字幕精品视频| 亚洲欧美日韩中文在线| 欧美日本在线视频中文字字幕| 精品久久香蕉国产线看观看gif| 美女扒开尿口让男人操亚洲视频网站| 在线免费看av不卡| 综合国产在线观看| 国产精品吹潮在线观看| 国内精品小视频在线观看| 欧美成人免费一级人片100| 69影院欧美专区视频| 91在线国产电影| 欧美日韩在线观看视频| 伊人久久综合97精品| 亚洲免费小视频| 欧美理论电影在线观看| 欧美日韩国产精品一区二区三区四区| 欧美一性一乱一交一视频| 国产精品尤物福利片在线观看| 国产成人黄色av| 久久久久www| 国产精彩精品视频| 日韩高清人体午夜| 国产99视频精品免视看7| 欧美天天综合色影久久精品| 一个人看的www久久| 亚洲欧洲av一区二区| 日韩精品亚洲元码| 欧美激情精品久久久久久大尺度| 九九热最新视频//这里只有精品| 国内偷自视频区视频综合| 色偷偷888欧美精品久久久| 国产成人97精品免费看片| 国产午夜精品全部视频在线播放| 欧美一级电影免费在线观看| 久久久亚洲欧洲日产国码aⅴ| 国产精品极品美女在线观看免费| 久久久久久亚洲| 91精品成人久久| 国产男人精品视频| 亚洲区免费影片| 91免费欧美精品| 高潮白浆女日韩av免费看| 亚洲欧美激情另类校园| 日本电影亚洲天堂| 久久精品色欧美aⅴ一区二区| 亚洲影院色在线观看免费| 日本一区二区不卡| 成人有码视频在线播放| 亚洲最新在线视频| 成人免费直播live| 成人免费高清完整版在线观看|