| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2000 人关注过本帖
标题:[求助]输入一个数字或字符,用什么函数可以识别出输入的是字符还是数字?
只看楼主 加入收藏
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
收藏
得分:0 
如果是数字再atoi()变成数字就好了....

简单的快乐着~
2007-10-27 14:14
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 

还真没有遇到过这样的问题呢?LZ有想发.不错.先顶起来看看.等高人来.


2007-10-27 19:56
neufcl
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2007-10-23
收藏
得分:0 
回复:(talentzhu)[求助]输入一个数字或字符,用什么...

#include<iostream>
#include<cstring>
#include<iomanip>
using namespace std;
main()
{
cout<<"insert a string:"<<endl;
char a;
int sum=0;
int sign=1;
cin>>a;
while(a!='#')
{
a-=0x30;
if((0x1<=a)&&(a<=0x9))
{
sum*=10;
sum+=a;
}
else
{
cout<<"the string is a charstring!"<<endl;
sign=0;
break;
}
cin>>a;
}
if(sign)
cout<<"the string is a number= :"<<sum<<endl;
}
不知道你说的是这个意思不?


学好C++
2007-10-27 22:31
talentzhu
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-5-12
收藏
得分:0 
回楼上:
#include<iostream>
#include<cstring>
#include<iomanip>
using namespace std;
main()
{
cout<<"insert a string:"<<endl;
char a; //首先,我学的是C,我不知道在C++中char的分配空间是多少,在我电脑里用C时是一个字节空间,就算用用整形变量强制输入,他能表示的范围也才-127~127之间,太少了,不合要求。
int sum=0;
int sign=1;
cin>>a;
while(a!='#')
{
a-=0x30;//我不明白这什么意思。
if((0x1<=a)&&(a<=0x9))
{
sum*=10;
sum+=a;
}
else
{
cout<<"the string is a charstring!"<<endl;
sign=0;
break;
}
cin>>a;
}
if(sign)
cout<<"the string is a number= :"<<sum<<endl;
}
不知道你说的是这个意思不?
2007-10-28 18:04
neufcl
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2007-10-23
收藏
得分:0 

答楼上问:
(1)我这里的char a;是一个临时变量。用来逐位读入输入的字符串中的字符。在c/c++中它都占用一个字节。
(2)0x30是十六进制的30也就是十进制的48.原因:按字符读0-9的数字时,读入的是它的ASCII码。分别为30H-39H。
建议楼主看下汇编方面的书


学好C++
2007-10-28 18:48
neufcl
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2007-10-23
收藏
得分:0 
再者你运行一下我的程序就能体会到了。
再不行你就单步调试一下

学好C++
2007-10-28 18:49
talentzhu
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-5-12
收藏
得分:0 

但我想输入超过9的数字,是数字,不是用字符拼凑。

2007-10-28 20:57
dodober
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-10-23
收藏
得分:0 

我定义了一个共用体,
#include <stdio.h>
union number
{
double d;
char s[64];
}num;

union number select();

void main()
{
select();
}
union number select()
{
printf("please input any thing !\n");
if(scanf("%lf",&num.d))
printf("this is a number:%lf\n",num.d);
else
{
gets(num.s);
printf("this is a string:%s\n",num.s);
}
return num;
}

2007-10-28 22:15
deamonhdb
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-7
收藏
得分:0 
用一个判断就可了
ch>='0'&&ch<='9'就是数字
ch>='a'&&ch<='z'||chch>='A'&&ch<='Z'就是字母
具体程序就劳驾楼主了
2007-10-28 23:59
deamonhdb
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-7
收藏
得分:0 
对不起,发错了,麻烦版主删一下
2007-10-29 00:00
快速回复:[求助]输入一个数字或字符,用什么函数可以识别出输入的是字符还是数字 ...
数据加载中...
 
   



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

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