9个回答
2015-11-15 · 知道合伙人教育行家
关注
展开全部
通过字符的字母和数字的ASCII递增的特点来判断。
例如:
//参考代码如下:
#include "iostream"
#include "stdio.h"
#include <string.h>
using namespace std;
int main()
{
char ch;
cin>>ch;
if(ch>='0'&&ch<='9')
cout<<"该字符为数字"<<endl;
else if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) //字符区分大小写
cout<<"该字符为字母"<<endl;
return 0;
}
/*
运行结果:
1
该字符为数字
g
该字符为字母
E
该字符为字母
*/
展开全部
输入的时候比如scanf会有一个输入格式,如果不确定输入的是数字还是字符,那就暂且全部当做字符储存,存在数组里a[100]。
最后挨个判断字符的大小 应为字符在ASIIC排列是有归类和顺序的 比如a[0]>='0'并且a[0]<='9',那么就知道这个字符本身是个数字不是字母,就可以转化这样,b = a[0]-'0';这样b的值就是字符对应的数字。 如果a[0]>='A'并且a[0]<='Z',那么就是大写字母;a[0]>='a'并且a[0]<='z',小写字母.具体可以百度一下asiic表
最后挨个判断字符的大小 应为字符在ASIIC排列是有归类和顺序的 比如a[0]>='0'并且a[0]<='9',那么就知道这个字符本身是个数字不是字母,就可以转化这样,b = a[0]-'0';这样b的值就是字符对应的数字。 如果a[0]>='A'并且a[0]<='Z',那么就是大写字母;a[0]>='a'并且a[0]<='z',小写字母.具体可以百度一下asiic表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个程序与“输入的是字符还是数字”没有关系。
关键是不能用double类型的r与0直接这样进行比较:r!=0
应该像下面这样写:
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
关键是不能用double类型的r与0直接这样进行比较:r!=0
应该像下面这样写:
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字母和数字的asci码值在两个不同范围,判断输入字符的asci码可知是字母还是数字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
isalpha
函数:isalpha
原型:int isalpha(int ch)
用法:头文件加入#include <cctype>(旧版本的编译器使用<ctype.h>)
功能:判断字符ch是否为英文字母,当ch为英文字母a-z或A-Z时,在标准c中相当于使用“isupper(ch)||islower(ch)”做测试,返回非零值(不一定是1),否则返回零。
isdigit
原型:extern int isdigit(char c);
用法:#include <ctype.h>
功能:判断字符c是否为数字
说明:当c为数字0-9时,返回非零值,否则返回零。
如果想自己写,上面的“功能、说明”部分都很清楚了,直接判断字符在不在'0'~'9','a~'z',‘A'~'Z'
范围内即可
函数:isalpha
原型:int isalpha(int ch)
用法:头文件加入#include <cctype>(旧版本的编译器使用<ctype.h>)
功能:判断字符ch是否为英文字母,当ch为英文字母a-z或A-Z时,在标准c中相当于使用“isupper(ch)||islower(ch)”做测试,返回非零值(不一定是1),否则返回零。
isdigit
原型:extern int isdigit(char c);
用法:#include <ctype.h>
功能:判断字符c是否为数字
说明:当c为数字0-9时,返回非零值,否则返回零。
如果想自己写,上面的“功能、说明”部分都很清楚了,直接判断字符在不在'0'~'9','a~'z',‘A'~'Z'
范围内即可
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询