今天我們來看一道經典面試題:編寫程式實現字串到整數的轉換,例如輸入「12345」,輸出整數12345.
首先如果我們不想細究其中的各種情況問題,可以用乙個十分簡單粗暴的方法來解決。就是庫中的atoi函式:它是專門將字串轉換成整數的函式。其次最簡單的方法就是通過乙個簡單的迴圈得到結果,但是這個方法並不考慮很多情況。
(1)簡單法。
#include#includeint change(char *a) //定義函式實現字串轉換為整數。
printf("%d\n",sum);
return 0;
}int main()
但是當我們面試時,如果只寫這樣的**會讓面試官很失望,所以我們在轉換的同時還要考慮到如果數字前面有空格,正負號,其他符號,或者最後的結果超越了界限應該怎麼辦。(2)完整法。
#include#includeenum result
result; //定義乙個列舉型別,用來表示最後轉換是否成功。
int change(char *a)
if(*a=='\0') //如果為'\0',位元組返回0.
else if(*a=='+') //如果為+,繼續向後移動。
else if(*a=='-') //如果為-,就將flag賦成負值。
while(*a!='\0') //當*a沒完時,進行迴圈得到sum.
}else if(!(isdigit(*a)))
} return (int)sum;
}int main()
else
system("pause");
return 0;
}
這個方法才是最好的,所以這個題告訴我們以後做題最好要把所有情況都想好並且實現出來,這樣的才是好**。 整數轉化為字串和字串轉化為整數
整數轉化為字串 includeint main temp i 0 為什麼等於0就可以,因為將temp定義為字串陣列後,等號右邊的數相當於ascii碼值,0就相當於 0 如果寫為61,輸出就為 12345 printf s temp i i 1 while i 0 str j temp i str j...
字串轉化為整數
字串轉化為整數需要注意以下幾個問題 1.檢測非法輸入 2.空串 空指標 3.判斷數字的正負 4.處理數字的上下溢位。因為整數是有範圍的。include long long strtointcore const char digit,bool minus enum status int g nstat...
將字串轉化為整數問題(C )
1.將字串轉化為整數問題 c 仿照atoi實現 仿照atoi函式實現字串轉化為整形資料問題 include stdafx.h enum myenum int mstate evalid 定義全域性變數,輸入非法時設定該全域性變數 則通過檢查該全域性變數就能夠判斷輸入是否合法 實現字串轉化為整形資料a...