对C语言islower、isupper、isdigit函数的测试

今天朋友问起了这三个函数,我就帮忙测试了下,测试后发现谭浩强第四版课本附录上上讲的不是很严谨.

我们先看下这三个函数介绍:

谭浩强第四版课本附录第396页上这样介绍:

函数名函数原型功能返回值包含文件
islower   
int islower(int ch);检查ch是否是小写字母(a-z)是则返回1;不是返回0 ctype.h
isupper
int isupper(int ch);检查ch是否是大写字母(A-Z)是则返回1;不是返回0 ctype.h
isdigitint isdigit(int ch);检查ch是否是数字(0-9)是则返回1;不是返回0ctype.h

百度百科这样介绍:

函数名函数原型功能返回值包含文件
islower   
int islower(int ch);检查ch是否是小写字母(a-z)是则返回TRUE,否则返回NULL(0)。 ctype.h
isupper
int isupper(int ch);检查ch是否是大写字母(A-Z)是则返回非零值,否则返回零 ctype.h
isdigitint isdigit(int ch);检查ch是否是数字(0-9)是则返回TRUE,否则返回NULL(0)。ctype.h

而我的测试结果:

函数名函数原型功能返回值包含文件
islower   
int islower(int ch);

检查ch是否是小写字母

(a-z)

vc++6.0是小写字母则返回2,

否则返回NULL(0)。

 

codeblocks是小写字母则返回2,

 否则返回NULL(0)。

 

TC是小写字母则返回8,

否则其他返回0

ctype.h
isupper

int isupper(int ch);

检查ch是否是大写字母

(A-Z)

 vc++6.0大写字母是则返回1,

否则返回NULL(0)。

 

codeblocks是则返回0,

否则小写字母返回2,

数字返回0,特殊符号返回0

 

TC是大写字母则返回4,

否则小写字母返回0,

数字返回0 特殊符号返回0

ctype.h
isdigitint isdigit(int ch);检查ch是否是数字(0-9)

VC++6.0是数字则返回4,

否则返回NULL(0)。

 

codeblocks是数字则返回0,

否则小写字母返回2

,大写字母返回0,

特殊符号返回0

 

TC是数字则返回2,

否则大写字母返回0,

小写字母返回0

特殊符号返回0

ctype.h

测试数据:

百度上说:int islower(int c)函数判断是否是小写字母,是则返回true,否则返回0,

谭浩强书上说 int islower(int c)函数判断是否是小写字母,是则返回1,否则返回0,

而我使用 VC++6.0测试结果却显示,int islower(int c)函数判断是否是小写字母,是则返回2,否则返回0.

        codeblocks测试结果却显示,int islower(int c)函数判断是否是小写字母,是则返回2,否则返回0.

        TC编译器测试结果显示:int islower(int c)函数判断是否是小写字母,是则返回8,否则返回0.

测试代码如下:

/*************

测试环境:VC++6.0

测试人:星云

测试时间:2015-1-10

***************/
#include<stdio.h>
#include<ctype.h>
int main()
{
    char b;
    int a;
    printf("请输入第一个字符:");    
    scanf("%c",&b);
    a=islower(b);//判断是否是小写字母,是则返回true,否则返回0
  // VC++6.0测试结果却显示,int islower(int c)函数判断是否是小写字母,是则返回2,否则返回0.

  //codeblocks测试结果却显示,int islower(int c)函数判断是否是小写字母,是则返回2,否则返回0.

  //TC编译器测试结果显示:int islower(int c)函数判断是否是小写字母,是则返回8,否则返回0.
    printf("%d\n",a);
    return 0;
}

 VC++6.0程序截图:

codeblocks程序截图:

 

TC编译器程序截图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值