说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

关于islower(ch),isdigit(ch)

编辑:说三道四文库 发布时间:2018-07-19 10:14
HTML文档下载 WORD文档下载 PDF文档下载
老C语言中islower(ch),isdigit(ch)的参数ch被定义为int型,如何判断'a'为小写字母,函数值为1是真还是0为真?如果参数为字符型,如何判断。在vc++环境下,我试了几次都没有得到满意的结果,虽然编译没有错误。

islower('a');
就可以吧
在不是小写字母是返回0
if (islower('a'))
{
    // 小写字母
}

你说出问题是怎么个情况,说说看。
if (islower(ch))
   cout<<"is lower";
else
   cout<<"not is lower";

不可能出错.
至于ch被定义为int型, 这个你也不用管它,因为char型的字符可以自动类型转换为int
#include "stdio.h"
#include "ctype.h"
void main( )
{int a=0,b=0;
if(islower('f')==1)
a=3;
if(isdigit('5')==1)
b=3;
printf("%d%d",a,b);
}
运行后,a,b还是为0.
你不要把返回值跟1 比,不一定返回1 的,你直接用
if (islower('f'))
就可以了,在c 里面,只有跟false 即0 比较才是可靠的,非0 的都是true。
非要显式比较就写
if (!(islower('f') == 0))
好了。
一般说来,像这类函数如果判断为"否", 则返回0值; 如果是"是",则返回非0值(可没有说是1啊).

其实布尔值一般也是这么定义的, 0表示false, 非0(一般是1或-1, 各个编译器不同的)表示true.
(当然也有极个别编译器并不是这么定义的)
原型:extern int islower(int c);
  
  用法:#include <ctype.h>
  
  功能:判断字符c是否为小写英文字母
  
  说明:当c为小写英文字母(a-z)时,返回非零值,否则返回零。
===============================================================
原型:extern int isdigit(int c);
  
  用法:#include <ctype.h>
  
  功能:判断字符c是否为数字
  
  说明:当c为数字0-9时,返回非零值,否则返回零。
  
谢谢!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘