标题:判定是否为实数
只看楼主
一口三个汉堡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:155
专家分:525
注 册:2010-3-21
结帖率:83.33%
已结贴  问题点数:20 回复次数:11 
判定是否为实数
输入一个字符串,如何判断这些字符串是实数.
搜索更多相关主题的帖子: 实数 
2010-04-02 19:19
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
得分:0 
double atof(const char *nptr);
2010-04-02 20:58
hziee
Rank: 4
等 级:业余侠客
帖 子:64
专家分:257
注 册:2010-3-12
得分:0 
用这个函数double atof(const char *nptr)好象不行吧!
如输入:1/-3.0 能判断为实数吗?

[ 本帖最后由 hziee 于 2010-4-2 21:18 编辑 ]
2010-04-02 21:13
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
得分:0 
以下是引用hziee在2010-4-2 21:13:42的发言:

用这个函数double atof(const char *nptr)好象不行吧!
如输入:1/-3.0 能判断为实数吗?
这位NB。期待你的高见
2010-04-02 21:55
zjttwh
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-2
得分:0 
    函数名: atof
  功 能: 把字符串转换成浮点数
  用 法: double atof(const char *nptr);
  程序例:
  #include <stdlib.h>
  #include <stdio.h>
  int main(void)
  {
  float f;
  char *str = "12345.67";
  f = atof(str);
  printf("string = %s float = %f\n", str, f);
  return 0;
  }
2010-04-02 22:18
一口三个汉堡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:155
专家分:525
注 册:2010-3-21
得分:0 
回复 2楼 lijm1989
这个函数应该是把字符串转换成实数,那判定呢?

坚持做对的事情,而不是容易的事情。
2010-04-02 23:24
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
得分:0 
这个函数不能严格保证字符串是不是真的是实数,如果要准确的话··估计只能自己写~~
2010-04-02 23:33
hanzhenddd
Rank: 5Rank: 5
等 级:职业侠客
帖 子:90
专家分:361
注 册:2010-3-4
得分:0 
可以用  scanf 的返回值来解决这个问题!~~
2010-04-02 23:34
hzz063
Rank: 3Rank: 3
来 自:横县百合
等 级:论坛游侠
帖 子:80
专家分:114
注 册:2010-1-27
得分:0 
在C和指针 这本书里有一段话这样“无论是程序员还是计算机都无法通过值的位模式来判断他的类型。类型是通过值得使用方法隐式地确定。编译器能够保证值的声明和使用之间的关系是适当的,从而帮助我们确定值的类型。”

这段话我也不太明白。
要用函数 atof 的话,我们可以通过他的返回值,如;if( f = atof(str)) 来判断,你输入的是字符的话他是转换不成功的,返回0。
但这样也不能完全判断出是不是实型,因为还有整形。
试着用scanf的返回值也不如意,。
我也想不到别的办法

一切只因为喜欢。
2010-04-03 11:24
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:15 
你可将输入的串用类似正则表达式的方式来判断一下啊!
如果要达到3楼所说的标准,那要判断是不是符合一个算术表达式规则,并且能计算出这个表达式的值之后再作处理。

★★★★★为人民服务★★★★★
2010-04-03 11:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-301451-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.123459 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved