編寫程式實現字串到整數的轉換。

2021-06-29 10:50:54 字數 1166 閱讀 5344

對於字串到整數的轉換,不僅僅是實現例如「12345」到12345的轉換,還應考慮「+12345」,」-12345「,」        12345「,」1 2 3 4 5「,」0x12ab5f6「,"1.2345exp5"的情況。

對於空格的判斷可以用庫中的isspace()函式來判斷,其餘皆用if做字串中數值是否等於的判斷即可。

函式實現**和測試如下:

#include #include #include //編寫程式實現字串到整數的轉換。

double my_atoi(char *str)

if(*str == '-')//判斷是否為負

if(*str == '+')//判斷是否為正

if(*str == '0')//判斷是否為16進製制數

if(*str <= 'f' && *str >= 'a' )//如果為大寫字母則進行計算轉換再進行計算

if(*str <= 'f' && *str >= 'a')//如果為小寫字母則進行計算轉換再進行計算

if(isspace(*str))//判斷是否為空格,避免在內部有空格

}} }

while(*str != '\0' && *str != '.'&&*str >= '0'&&*str <= '9')//從此處開始是轉換有小數點的數(小數點前部分數值計算) }

str++;

while(*str != '\0'&&*str >= '0'&&*str <= '9')//小數點後半部分計算 }

num = num/count;//後半部分加上小數點的值

result = result +num;//數的整體值(帶小數點的數判斷結束)

if(*str == 'e') //開始判斷指數型數的計算

result = result*(pow(10,tmp));//此處是其值

}} }

return flag * result;//此處是帶符號值

}int main()

執行結果如圖所示:

在此函式中可以得出,乙個問題應該考慮全面,從不同的幾個方面來進行實現功能。

轉換字串到整數

實現atoi這個函式,將乙個字串轉換為整數。如果沒有合法的整數,返回0。如果整數超出了32位整數的範圍,返回int max 2147483647 如果是正整數,或者int min 2147483648 如果是負整數。您在真實的面試中是否遇到過這個題?yes 樣例 10 10 1 1 12312312...

編寫程式將字串中最長的單詞輸出

程式設計基礎 c語言 楊莉 劉鴻翔 isbn 978 7 03 032903 5 p241 習題78.寫乙個函式,輸入一段英文,將此字串中最長的單詞輸出 include include define m 99 void error char a,int len 錯誤提示 void maxstring...

字串轉換整數(python實現)

題目描述 請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連...