Write a program to convert string to number without using library function。

1、问题

/*

*/

2、算法

#define MAX_LONG 0X7FFFFFFF

long 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 ;

}

时间: 2024-10-13 18:14:26

Write a program to convert string to number without using library function。的相关文章

err Invalid input of type: &#39;dict&#39;. Convert to a byte, string or number first

一个问题引发的血案: 用python向redis写入数据报错: redis.exceptions.DataError: Invalid input of type: 'dict'. Convert to a byte, string or number first. 查看redis的版本: pip3 freeze 显示现在的redis版本是: redis==3.2.1 对redis降版: pip3 install -U redis==2.10.6 #将当前版本降级到2.10.6 成功写入数据.

Convert String to Long

问题: Given a string, write a routine that converts the string to a long, without using the built in functions that would do this. Describe what (if any) limitations the code has. 代码: 1 /* 2 * Author: Min Li 3 * Discussion: 4 * 1. Return 0 when input i

svn: Can&amp;#39;t convert string from &amp;#39;UTF-8&amp;#39; to native encoding 解决的方法

今天在down代码时遇到了例如以下问题: [[email protected] ~]$ svn co https://xxxxxxxxxxxxx svn: Can't convert string from 'UTF-8' to native encoding: svn: xxxxxxxx/include/xml_inc/XML/?\194?\184? \194? \180?\194?\188?\195? \190 mcXML.h 这个问题主要是代码中包括了中文名字的文件,svn这边的编码不支持

IE6,IE7,IE8下报JS错误:expected identifier, string or number的原因及解决的方法

今天在调试一个页面的时候遇到一个问题,在IE9下执行得非常好的脚本,在IE8里打开的时候弹出错误:expected identifier, string or number,依照经验,应该是定义对象的时候最后一个属性末尾跟了逗号,但检查一遍后没发现有这样的情况,后来细致看了一下报错的位置,发现有定义json对象属性时,属性名没实用引號括起来,于是加了上去再试,问题攻克了. 综上所述,当出现expected identifier, string or number的错误时,你首先应该检查在使用对象

JS复习—基本包装类型(String、Number)、内置对象

   包装类型 在读取模式下访问基本类型值时,就会创建对应的基本包装类型的一个对象,从而方便了数据操作.每个包装类型都映射到同名的基本类型.操作基本类型值得语句一经执行完毕,就会立即销毁新创建的包装对象. 后台执行的操作: (1)创建一个String类型的一个实例: (2) 在实例上调用指定的方法 (3)销毁这个实例 var s1 = "some text"; var s2 = s1.substring(2); s1 = null; 一.Number类型 (1):valueOf() 返

svn: Can&#39;t convert string from &#39;UTF-8&#39; to native encoding: 解决办法

在linux中,svn co 或 svn up 时有中文文件名的文件的话,可能会报下面的错: [[email protected]-dev-srv1 ~]# svn upsvn: Can't convert string from 'UTF-8' to native encoding:svn: src/main/webapp/resources/js/My97DatePicker/?\229?\188?\128?\229?\143?\145?\229?\140?\133 先locale看一下系统

IE6,IE7,IE8下报JS错误:expected identifier, string or number的原因及解决办法

今天在调试一个页面的时候遇到一个问题,在IE9下运行得很好的脚本,在IE8里打开的时候弹出错误:expected identifier, string or number,按照经验,应该是定义对象的时候最后一个属性末尾跟了逗号,但检查一遍后没发现有这种情况,后来仔细看了一下报错的位置,发现有定义json对象属性时,属性名没有用引号括起来,于是加了上去再试,问题解决了. 综上所述,当出现expected identifier, string or number的错误时,你首先应该检查在使用对象字面

JavaScript在IE6,IE7下报错&#39;expected identifier, string or number&#39;

问题: 代码在Forefox和IE8下工作正常,但是在IE6下报错: expected identifier, string or number 假如变量options有多个选项,那么我们可以用逗号分开:但是最后一个选项后不可以有逗号.虽然IE8和Firefox可以忽略这个逗号,但是IE6下会报错(据说IE7下也会报错) 解决方案: 解决方法很简单,把多余的逗号删除就可以了. var options = { target: '.content' //注重不可以加逗号 }; JavaScript在

svn: Can&#39;t convert string from native encoding to &#39;UTF-8&#39;:

在bash的shell下,输入如下命令: #export LC_CTYPE=en_US.UTF-8 #!/bin/sh export LC_CTYPE=en_US.UTF-8 svn up /home/wwwroot/zj/erp --username "tcy" --password "zj004" http://blog.csdn.net/dazhi_100/article/details/17148987 svn: Can't convert string f