<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > C語言實現(xiàn)將字符串轉(zhuǎn)換為數(shù)字的方法

          C語言實現(xiàn)將字符串轉(zhuǎn)換為數(shù)字的方法

          作者: 時間:2016-11-27 來源:網(wǎng)絡 收藏
          這篇文章主要介紹了C語言實現(xiàn)將字符串轉(zhuǎn)換為數(shù)字的方法,涉及系統(tǒng)函數(shù)atoi()函數(shù)的使用技巧,需要的朋友可以參考下

          本文實例講述了C語言實現(xiàn)將字符串轉(zhuǎn)換為數(shù)字的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

          本文引用地址:http://www.ex-cimer.com/article/201611/322539.htm

          C語言提供了幾個標準庫函數(shù),可以將字符串轉(zhuǎn)換為任意類型(整型、長整型、浮點型等)的數(shù)字。以下是用atoi()函數(shù)將字符串轉(zhuǎn)換為整數(shù)的一個例子:

          代碼如下:
          # include
          # include
          void main (void) ;
          void main (void)
          {
          int num;
          char * str = "100";
          num = atoi(str);
          printf("The string str is %s and the number num is %d. ",str, num);
          }


          atoi()函數(shù)只有一個參數(shù),即要轉(zhuǎn)換為數(shù)字的字符串。atoi()函數(shù)的返回值就是轉(zhuǎn)換所得的整型值。

          下列函數(shù)可以將字符串轉(zhuǎn)換為數(shù)字:
          ------------------------------------------------------------------------
          函數(shù)名
          ------------------------------------------------------------------------
          atof()將字符串轉(zhuǎn)換為雙精度浮點型值
          atoi()將字符串轉(zhuǎn)換為整型值
          atol()將字符串轉(zhuǎn)換為長整型值
          strtod()將字符串轉(zhuǎn)換為雙精度浮點型值,并報告不能被轉(zhuǎn)換的所有剩余數(shù)字
          strtol()將字符串轉(zhuǎn)換為長整值,并報告不能被轉(zhuǎn)換的所有剩余數(shù)字
          strtoul()將字符串轉(zhuǎn)換為無符號長整型值,并報告不能被轉(zhuǎn)換的所有剩余數(shù)字
          ------------------------------------------------------------------------

          將字符串轉(zhuǎn)換為數(shù)字時可能會導致溢出,如果你使用的是strtoul()這樣的函數(shù),你就能檢查這種溢出錯誤。請看下例:

          復制代碼代碼如下:
          # include
          # include
          # include
          void main(void);
          void main (void)
          {
          char* str = "1234567891011121314151617181920" ;
          unsigned long num;
          char * leftover;
          num = strtoul(str, &leftover, 10);
          printf("Original string: %s",str);
          printf("Converted number: %1u" , num);
          printf("Leftover characters: %s" , leftover);
          }

          在上例中,要轉(zhuǎn)換的字符串太長,超出了無符號長整型值的取值范圍,因此,strtoul()函數(shù)將返回 ULONG_MAX(4294967295),并使。char leftover指向字符串中導致溢出的那部分字符;同時,strtoul()函數(shù)還將全局變量errno賦值為ERANGE,以通知函數(shù)的調(diào)用者發(fā)生了 溢出錯誤。函數(shù)strtod()和strtol()處理溢出錯誤的方式和函數(shù)strtoul()完全相同,你可以從編譯程序文檔中進一步了解這三個函數(shù)的 有關細節(jié)。

          希望本文所述對大家的C語言程序設計有所幫助。



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();