首页 > 代码库 > Write a program to convert string to number without using library function。
Write a program to convert string to number without using library function。
1、问题
/*
Write a program to convert string to number without using library function。
*/
2、算法
#define MAX_LONG 0X7FFFFFFFlong foo(const char* str)
{
int sign = 1 ;
long num = 0 ;
const char* p = str ;
//假设输入的字符串是合法的
if ( *p == ‘-‘ )
{
sign = -1 ;
p++ ;
}else if ( *p == ‘+‘ )
{
sign = 1 ;
p++ ;
}
while(*p)
{
if ( (num > LONG_MAX/10) ||
( (num == LONG_MAX/10) &&
( (-1 == sign && *p > ‘8‘) || (1 == sign && *p > ‘7‘)) ))
{
printf("out of bound") ;
return 0 ;
}
if ( *p >=‘0‘ && *p <=‘9‘ )
{
num = num*10 + (*p - ‘0‘) ;
}
*p++ ;
}
printf("%d", num * sign) ;
return num * sign ;
}
Write a program to convert string to number without using library function。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。