首页 > 代码库 > 对C语言islower、isupper、isdigit函数的测试

对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编译器程序截图:

技术分享

 

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