對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
isdigit int isdigit(int ch); 檢查ch是否是數字(0-9) 是則返回1;不是返回0 ctype.h

百度百科這樣介紹:

函數名 函數原型 功能 返回值 包含文件
islower   
int islower(int ch); 檢查ch是否是小寫字母(a-z) 是則返回TRUE,否則返回NULL(0)。 ctype.h
isupper
int isupper(int ch); 檢查ch是否是大寫字母(A-Z) 是則返回非零值,否則返回零 ctype.h
isdigit int 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
isdigit int 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編譯器程序截圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM