今天朋友問起了這三個函數,我就幫忙測試了下,測試后發現譚浩強第四版課本附錄上上講的不是很嚴謹.
我們先看下這三個函數介紹:
譚浩強第四版課本附錄第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編譯器程序截圖: