| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1492 人关注过本帖
标题:惊人发现!用isalpha()判断输入字符是否是字母,无法识别小写字母!
只看楼主 加入收藏
werren
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-5-12
收藏
 问题点数:0 回复次数:4 
惊人发现!用isalpha()判断输入字符是否是字母,无法识别小写字母!
#include<stdio.h>
#include<ctype.h>
main()
{
printf("请输入两个字母\n ");
char a,b;
scanf("%c%c",&a,&b);
if(isalpha(a)==0&&isalpha(b)==1)
printf("您输入的第一个字符不是字母");
if(isalpha(a)==1&&isalpha(b)==0)
printf("您输入的第二个字符不是字母");
if(isalpha(a)==0&&isalpha(b)==0)
printf("您输入的两个字符都不是字母");
if(isalpha(a)==1&&isalpha(b)==1)
printf("%c,%c\n",b,a);
}
当我输入小写字母时,程序不能判断,为什么?请指点。

[此贴子已经被作者于2007-5-13 8:07:27编辑过]

搜索更多相关主题的帖子: isalpha 字母 小写 字符 判断 
2007-05-12 10:48
iwfy
Rank: 1
等 级:新手上路
威 望:2
帖 子:888
专家分:0
注 册:2007-2-23
收藏
得分:0 
这个函数我还没用过但是:
printf("%d\n",isalpha(a));
a要是小写的话就返回2,你试试

英语不好还想学编程??逆天之路,不由分说!! 数学太差还想学编程??离经叛道,义无返顾!!
2007-05-12 10:55
werren
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-5-12
收藏
得分:0 
isalpha()是函数库里的,声明是字母它就返回1,不是字母就返回0,如果照楼上说的“printf("%d\n",isalpha(a));
a要是小写的话就返回2”就是要我们重新定义函数了。那不如不用。直接用if(c>='a'&&c<='z'||c>=A&&c<='Z');(c为输入字符)来判断是否是字母比较好。

[此贴子已经被作者于2007-5-12 11:12:50编辑过]

2007-05-12 11:12
werren
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-5-12
收藏
得分:0 
不好意思,我请教了一下老师终于知道原因了!希望对大家有所帮助。我们现在用的是谭浩强的课本,其中课本上写的isalpha()的返回值有错,书上写如果是字母返回1,不是字母返回0。由于我是初学者怎么也没想到返回值会有错!!!
后来听老师给我一个实验的方法验证: char c;a=ialpha(c).....然后输入字母和非字母查看返回值!搞定!才知道当是字母时返回2。
由于我提了问题还发现课本上的错误,还受到老师的表扬,呵呵,得意极了,不过我知道I still have much to work on!
let's work it together!
2007-05-17 21:57
werren
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-5-12
收藏
得分:0 
谢谢一楼的!!没想到你早已给出回答了,我没仔细看,很不好意思
2007-05-17 22:01
快速回复:惊人发现!用isalpha()判断输入字符是否是字母,无法识别小写字母!
数据加载中...
 
   



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

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