C語(yǔ)言實(shí)現(xiàn)將字符串轉(zhuǎn)換為數(shù)字的方法
本文實(shí)例講述了C語(yǔ)言實(shí)現(xiàn)將字符串轉(zhuǎn)換為數(shù)字的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
本文引用地址:http://m.butianyuan.cn/article/201611/322539.htmC語(yǔ)言提供了幾個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù),可以將字符串轉(zhuǎn)換為任意類型(整型、長(zhǎng)整型、浮點(diǎn)型等)的數(shù)字。以下是用atoi()函數(shù)將字符串轉(zhuǎn)換為整數(shù)的一個(gè)例子:
# include
void main (void) ;
void main (void)
{
}
atoi()函數(shù)只有一個(gè)參數(shù),即要轉(zhuǎn)換為數(shù)字的字符串。atoi()函數(shù)的返回值就是轉(zhuǎn)換所得的整型值。
下列函數(shù)可以將字符串轉(zhuǎn)換為數(shù)字:
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
將字符串轉(zhuǎn)換為數(shù)字時(shí)可能會(huì)導(dǎo)致溢出,如果你使用的是strtoul()這樣的函數(shù),你就能檢查這種溢出錯(cuò)誤。請(qǐng)看下例:
# include
# include
void main(void);
void main (void)
{
}
在上例中,要轉(zhuǎn)換的字符串太長(zhǎng),超出了無(wú)符號(hào)長(zhǎng)整型值的取值范圍,因此,strtoul()函數(shù)將返回 ULONG_MAX(4294967295),并使。char leftover指向字符串中導(dǎo)致溢出的那部分字符;同時(shí),strtoul()函數(shù)還將全局變量errno賦值為ERANGE,以通知函數(shù)的調(diào)用者發(fā)生了 溢出錯(cuò)誤。函數(shù)strtod()和strtol()處理溢出錯(cuò)誤的方式和函數(shù)strtoul()完全相同,你可以從編譯程序文檔中進(jìn)一步了解這三個(gè)函數(shù)的 有關(guān)細(xì)節(jié)。
希望本文所述對(duì)大家的C語(yǔ)言程序設(shè)計(jì)有所幫助。
評(píng)論