亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言實現將字符串轉換為數字的方法

 更新時間:2014年12月13日 14:26:52   投稿:shichen2014  
這篇文章主要介紹了C語言實現將字符串轉換為數字的方法,涉及系統函數atoi()函數的使用技巧,需要的朋友可以參考下

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

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

復制代碼 代碼如下:
# include <stdio. h>
# include <stdlib. h>
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. \n",str, num);
}

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

下列函數可以將字符串轉換為數字:
------------------------------------------------------------------------
    函數名    作  用
------------------------------------------------------------------------
 atof()     將字符串轉換為雙精度浮點型值
 atoi()     將字符串轉換為整型值
 atol()     將字符串轉換為長整型值
 strtod()   將字符串轉換為雙精度浮點型值,并報告不能被轉換的所有剩余數字
 strtol()   將字符串轉換為長整值,并報告不能被轉換的所有剩余數字
 strtoul()  將字符串轉換為無符號長整型值,并報告不能被轉換的所有剩余數字
------------------------------------------------------------------------ 
 
將字符串轉換為數字時可能會導致溢出,如果你使用的是strtoul()這樣的函數,你就能檢查這種溢出錯誤。請看下例: 

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

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

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

相關文章

  • 淺析C++中結構體的定義、初始化和引用

    淺析C++中結構體的定義、初始化和引用

    以下是對C++中結構體的定義、初始化和引用進行了詳細的介紹,需要的朋友可以過來參考下
    2013-09-09
  • C++變量和基本類型詳解

    C++變量和基本類型詳解

    這篇文章主要介紹了C++變量和基本類型,,一定要注意局部變量與全局變量的作用范圍,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • C++面向對象中構造函數使用詳解

    C++面向對象中構造函數使用詳解

    學習過C語言的小伙伴知道:C語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函數調用逐步解決問題,這篇文章主要介紹了C++面向對象中構造函數使用
    2022-10-10
  • C++如何使用new來初始化指向類的指針

    C++如何使用new來初始化指向類的指針

    這篇文章主要介紹了C++如何使用new來初始化指向類的指針問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • qt中sokect斷開的幾種情況

    qt中sokect斷開的幾種情況

    本文主要介紹了qt中sokect斷開的幾種情況,文中介紹了很多情況,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-12-12
  • C語言實現學生成績管理系統課程設計

    C語言實現學生成績管理系統課程設計

    這篇文章主要為大家詳細介紹了C語言實現學生成績管理系統課程設計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C語言動態(tài)內存的分配最全面分析

    C語言動態(tài)內存的分配最全面分析

    動態(tài)內存是相對靜態(tài)內存而言的。所謂動態(tài)和靜態(tài)就是指內存的分配方式。動態(tài)內存是指在堆上分配的內存,而靜態(tài)內存是指在棧上分配的內存,本文帶你深入探究C語言中動態(tài)內存的管理
    2022-08-08
  • C語言函數調用約定和返回值詳情

    C語言函數調用約定和返回值詳情

    這篇文章主要介紹了C語言函數調用約定和返回值詳情,函數調用約定不同,會影響函數生成的符號名,函數入參順序,形參內存的清理者,更多相關需要的小伙伴可以參考下文詳情介紹
    2022-07-07
  • C++重載的奧義之函數重載詳解

    C++重載的奧義之函數重載詳解

    函數重載是C++多態(tài)(靜態(tài)多態(tài))的特征體現,它可以允許重復使用同一個函數名(籃子)的函數,但是函數的參數列表(籃子裝的東西)是可以不一樣的。下面就簡單講講C++中函數重載的相關應用吧
    2023-04-04
  • 深入理解:Java是類型安全的語言,而C++是非類型安全的語言

    深入理解:Java是類型安全的語言,而C++是非類型安全的語言

    本篇文章是對Java是類型安全的語言,而C++是非類型安全的語言進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06

最新評論