對於字串到整數的轉換,不僅僅是實現例如「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 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連...