我想寫一個函數來解析字符串表示的一個整數。從一個字符串中解析一個int的算法
我的問題是,我不知道如何做到這一點通過字符串一次。如果我知道的時間提前,輸入僅包含字符範圍'0'
,'1'
,...,'9'
並且字符串長度是的n
,我當然可以計算
character_1 * 10^(n-1) + character_2 * 10^(n-2) + .... + character_n * 10^0
,但我要處理與我提出的一般場景一樣。
我不是在尋找一個庫函數,而是一個在「純C」中實現這個功能的算法。
這是我從開始的代碼:
int parse_int (const char * c1, const char * c2, int * i)
{
/*
[c1, c2]: Range of characters in the string
i: Integer whose string representnation will be converted
Returns the number of characters parsed.
Exs. "2342kjsd32" returns 4, since the first 4 characters were parsed.
"hhsd3b23" returns 0
*/
int n = 0;
*i = 0;
while (c1!= c2)
{
char c = *c1;
if (c >= '0' && c <= '9')
{
}
}
return n;
}
如果條件'n = n * 10 +(c-'0');' – 2015-02-11 06:33:01
「Pure C,沒有庫包含忽略標準庫嗎? – 2015-02-11 06:41:42
@Lashane那不行。例如,如果字符串是「123」,那麼它將被計算爲1 + 20 + 300 = 321。 – 2015-02-11 06:42:28