设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
请教一个算法问题!!!
返回列表
查看:
812
|
回复:
5
请教一个算法问题!!!
[复制链接]
jeoncanon
jeoncanon
当前离线
积分
230
IP卡
狗仔卡
发表于 2002-12-30 22:36:17
|
显示全部楼层
|
阅读模式
想将一个用数组保存的ASCII字符序列转化成对应的数字。
例如
输入
23
转化成23
输入23.345
转化成23.345
。。。。。。。。。。
我的数组元素类型为CHAR(字符型)而且我知道这种情况下数组是以对应的
ASCII码存放的?
请教各位高手有没有快速转化成数字的算法?
谢谢
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
tram
tram
当前离线
积分
7281
IP卡
狗仔卡
发表于 2002-12-30 22:38:46
|
显示全部楼层
宽字符函数 普通C函数 描述
wcstod() strtod() 把宽字符的初始部分转换为双精度浮点数
wcstol() strtol() 把宽字符的初始部分转换为长整数
wcstoul() strtoul() 把宽字符的初始部分转换为无符号长整数
回复
支持
反对
使用道具
举报
显身卡
jeoncanon
jeoncanon
当前离线
积分
230
IP卡
狗仔卡
楼主
|
发表于 2002-12-30 23:28:46
|
显示全部楼层
谢了
可能我的意思没表达清楚
我的本意是想写一个很简单的计算器
用到了堆栈
分别存放操作数和运算符实现表达式的求值(数据结构上有不记得了好像是转化成逆波兰表达式后再运算)
例如输入
1+2+6+8/2=
输出13
后来觉得太这个程序太简单了
想实现多位数(在double float位数范围内)的运算并且带小数位
如输入1.2+5+55886.3-85
(我用数组存放每个字符因此想到了把连续的“数字字符”转化成真正对应的数字。如数组存放a[0]=1,a[1]=3实际上等于13)
等类似的表达式
该如何实现?有更好的请不吝赐教。
回复
支持
反对
使用道具
举报
显身卡
fml
fml
当前离线
积分
7
IP卡
狗仔卡
发表于 2002-12-31 13:29:45
|
显示全部楼层
re:算符优先法
做这种简单的四则运算其实用算符优先法就可,可单个字符逐个转换为0-9,而后
result=result*10+newch;
回复
支持
反对
使用道具
举报
显身卡
fml
fml
当前离线
积分
7
IP卡
狗仔卡
发表于 2002-12-31 13:37:18
|
显示全部楼层
re:注意小数点的出现
补充:注意小数点的出现后情况的处理
s=1;
do
s*=0.1;
result+=newch*s;
while(..)
回复
支持
反对
使用道具
举报
显身卡
jeoncanon
jeoncanon
当前离线
积分
230
IP卡
狗仔卡
楼主
|
发表于 2002-12-31 15:35:42
|
显示全部楼层
3q
谢谢楼上的几位兄弟
我已经搞定了
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表