Charles
Thinking low level, Coding high level
C++博客
首页
新随笔
联系
聚合
管理
posts - 71, comments - 39, trackbacks - 0
整数与字符串互相转换
加了对负数和溢出的处理,其他出错考虑较少,凑合看
#include
<
climits
>
bool
Str2Int(
const
char
*
s,
int
*
result)
{
int
digit;
*
result
=
0
;
bool
isNeg
=
false
;
int
i
=
0
;
if
(s[
0
]
==
'
-
'
)
{
isNeg
=
true
;
i
=
1
;
}
while
(s[i]
>=
'
0
'
&&
s[i]
<=
'
9
'
)
{
if
(
*
result
<=
(INT_MAX
-
(digit
=
s[i
++
]
-
'
0
'
))
/
10
)
{
*
result
=
10
*
(
*
result)
+
digit;
}
else
{
return
false
;
}
}
//
while
if
(
!
s[i]
&&
s[
0
])
{
if
(isNeg)
*
result
*=
-
1
;
return
true
;
}
else
{
return
false
;
}
}
混杂合法字串
#include
<
climits
>
bool
MixedStr2Int(
const
char
*
s,
int
*
result)
{
int
digit;
*
result
=
0
;
for
(
int
i
=
0
; s[i]
!=
'
\0
'
; i
++
)
{
if
(s[i]
>
'
0
'
&&
s[i]
<
'
9
'
)
{
if
(
*
result
<=
(INT_MAX
-
(digit
=
s[i]
-
'
0
'
))
/
10
)
{
*
result
=
10
*
(
*
result)
+
digit;
}
else
{
return
false
;
}
}
}
//
for
return
true
;
}
bool
Int2Str(
int
n,
char
*
arr,
int
len)
{
int
start
=
0
, end
=
0
;
bool
isNeg
=
false
;
if
(n
<
0
)
{
n
*=
-
1
;
isNeg
=
true
;
}
do
{
arr[end
++
]
=
n
%
10
+
'
0
'
;
n
/=
10
;
len
--
;
}
while
(n
&&
(len
>
0
));
if
(len
<=
0
)
{
return
false
;
}
if
(isNeg)
{
if
(len
>
1
)
{
arr[end
++
]
=
'
-
'
;
len
--
;
}
else
return
false
;
}
arr[end
--
]
=
'
\0
'
;
while
(start
<
end)
{
arr[start]
^=
arr[end];
arr[end]
^=
arr[start];
arr[start]
^=
arr[end];
start
++
;
end
--
;
}
return
true
;
}
posted on 2006-11-17 13:01
Charles
阅读(219)
评论(0)
编辑
收藏
引用
所属分类:
面试小算法
IT新闻:
·
美博客列20家值得关注纽约创业企业
·
王建宙:希望在国内销售苹果iPad和iPhone
·
传网易微博20号正式上线 门户网站角力微博
·
蓝港CEO王峰谈3年开发感悟:有点唠叨像唐僧
·
[视频]想做你的Code
专题:
Android
iPad
jQuery
Chrome OS
博客园首页
IT新闻
知识库
学英语
C++程序员招聘
标题
姓名
主页
验证码
*
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
每天10分钟,轻松学英语
推荐职位:
·
飞信服务器端高级.NET开发工程师(新媒传信)
·
.NET飞信官网开发工程师(新媒传信)
·
.NET技术开发总监(广州衣酷)
·
ASP.NET资深工程师 (盛大网络)
·
.NET初级程序员 (北京安人)
·
.NET中级程序员 (北京安人)
·
中高级.NET工程师(沪江网)
·
前端开发工程师(沪江网)
博客园首页随笔:
·
全排列递归算法
·
ECMA-335(CLI)标准 读书笔记(第一部:概念和架构 第8章~8.2)
·
WCF4.0新特性体验(6):路由服务Routing Service(下)
·
[微软社区精英计划]-分享你的技术视频,提升你的影响力!
·
[浙大网新易盛] 春节后面试别人的经历总结之一,好岗位分享给还在找工作中的软件开发爱好者们
知识库:
·
你的成功在于你每天养成的习惯
·
TCL面试经验分享
·
如何在面试中正确面对自己的优缺点,从容应对考官
·
Web 设计与开发终极资源大全
·
如何做你一直梦寐以求的事情?
相关文章:
Integer Partition
数1的个数
Fibonacci
简单打印内存的小玩意儿
矩阵式螺旋输出
求最大公约数与最小公倍数
数内置类型的bit数
计算Int最大最小值
两个堆栈模拟一个队列
检测补码表示
网站导航:
博客园
IT新闻
博客园个人主页
BlogJava
博客生活
IT博客网
PHP博客
博客园社区
管理
<
2006年11月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
决定开始写工作日记,记录一下自己的轨迹...
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
(70)
Helper Utility(1)
读书作笔记(3)
发泄(3)
面试小算法(27)
拿来主义(25)
随笔(10)
一般人儿我不告诉他(1)
随笔档案
(71)
2008年3月 (1)
2008年2月 (1)
2007年7月 (3)
2007年3月 (3)
2007年1月 (18)
2006年12月 (16)
2006年11月 (29)
相册
Me
charles推荐访问
Code Project
Linux Journal
Linux man pages
Single UNIX Specification
电子书1
电子书2
电子书3
搜索
积分与排名
积分 - 23611
排名 - 185
最新评论
1. re: 数单词数
规范化;门口麻烦机;那么孔方兄那么妈妈法;酿母菌法那么;风格那么明年;愤怒麻烦那么愤怒愤怒留念多孔蕈乐观好看的里边赶快巴拿马城,新年巴拿马国际法,不
--申诉台
2. re: 数单词数
感到发现看来自动化大会单行本打开怎么赶快电子管矛盾感动不动门口‘大批看病黄道婆民主
--申诉台
3. re: 移除字符
评论内容较长,点击标题查看
--D_BOY
4. re: 很土
呵呵,慢慢来就好嘛
--flamingo
5. re: 毕业啦
评论内容较长,点击标题查看
--moonlight
阅读排行榜
1. 求最大公约数与最小公倍数(1812)
2. 计算Int最大最小值(1227)
3. 寻找最长递增子序列(1004)
4. IA32/Windows&Linux高精度计时器(885)
5. COFF格式续篇—Lib文件的结构zz(842)
评论排行榜
1. 计算Int最大最小值(5)
2. IA32/Windows&Linux高精度计时器(4)
3. 数单词数(3)
4. 两个堆栈模拟一个队列(3)
5. ZMD(3)