我想写一个函数来解析字符串表示的一个整数。从一个字符串中解析一个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