久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > C語言實現將字符串轉換為數字的方法

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

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

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

本文引用地址:http://cqxgywz.com/article/201611/322539.htm

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

代碼如下:
# 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()函數只有一個參數,即要轉換為數字的字符串。atoi()函數的返回值就是轉換所得的整型值。

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

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

復制代碼代碼如下:
# 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);
}

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

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



關鍵詞: C語言字符串數

評論


技術專區

關閉