应某位博友的提问,以下为解答博文
(以后有提问的博友不要找我要qq了,因为我不常上,邮箱还是可以的)
题目如下:
实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。
样例
"10" =>10
"-1" => -1
"123123123123123" => 2147483647
"1.0" => 1
解题思路:
题目不难,但还有挺多细节需要注意。例如负号还有其他符号的处理。思路也不难,不停乘10加个位即可。
思路代码实现如下:
int Method(char *c,int len)
{
int i,m=0,l=0;
for(i=0; i<len; ++i)
{
if(c[i]=='.')
break;
if(c[i]==' ') continue;
if(c[i]=='-'){l++;continue;}
if(c[i]<='9'&&c[i]>='0')
m=m*10+c[i]-'0';
else return 0;
}
return l==1?-m:l==0?m:0;
}
本文介绍了一个将字符串转换为整数的atoi函数实现方法。详细解释了如何处理负号和其他符号,通过不断乘以10并加上个位数字来构建整数值。文章提供了具体的代码示例,并说明了当输入超出32位整数范围时如何返回INT_MAX或INT_MIN。
1265

被折叠的 条评论
为什么被折叠?



