C 標準庫的 ctype.h頭文件提供了一些函數,可用於測試和映射字符。
這些函數接受 int作為參數,它的值必須是 EOF 或表示為一個無符號字符。
如果參數 c 滿足描述的條件,則這些函數返回非零(true)。如果參數 c 不滿足描述的條件,則這些函數返回零。
庫函數
下面列出了頭文件 ctype.h 中定義的函數:
實例
下面的實例演示了 isalnum() 函數的用法。
#include <stdio.h>#include <ctype.h>intmain(){intvar1='d';intvar2='2';intvar3='\t';intvar4=' ';if( isalnum(var1) ) {printf("var1 = |%c| 是字母數字\n", var1 ); }else {printf("var1 = |%c| 不是字母數字\n", var1 ); }if( isalnum(var2) ) {printf("var2 = |%c| 是字母數字\n", var2 ); }else {printf("var2 = |%c| 不是字母數字\n", var2 ); }if( isalnum(var3) ) {printf("var3 = |%c| 是字母數字\n", var3 ); }else {printf("var3 = |%c| 不是字母數字\n", var3 ); }if( isalnum(var4) ) {printf("var4 = |%c| 是字母數字\n", var4 ); }else {printf("var4 = |%c| 不是字母數字\n", var4 ); }return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
var1=|d|是字母數字var2=|2|是字母數字var3=||不是字母數字var4=||不是字母數字下面的實例演示了 isalpha() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ int var1 = 'd'; int var2 = '2'; int var3 = '\t'; int var4 = ' '; if( isalpha(var1) ) { printf("var1 = |%c| 是一個字母\n", var1 ); } else { printf("var1 = |%c| 不是一個字母\n", var1 ); } if( isalpha(var2) ) { printf("var2 = |%c| 是一個字母\n", var2 ); } else { printf("var2 = |%c| 不是一個字母\n", var2 ); } if( isalpha(var3) ) { printf("var3 = |%c| 是一個字母\n", var3 ); } else { printf("var3 = |%c| 不是一個字母\n", var3 ); } if( isalpha(var4) ) { printf("var4 = |%c| 是一個字母\n", var4 ); } else { printf("var4 = |%c| 不是一個字母\n", var4 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
var1 = |d| 是一個字母var2 = |2| 不是一個字母var3 = | | 不是一個字母var4 = | | 不是一個字母
下面的實例演示了 iscntrl() 函數的用法。
#include <stdio.h>#include <ctype.h>intmain (){inti=0, j=0;charstr1[] ="all \a about \t programming";charstr2[] ="w3cschool \n tutorials";/* 輸出字符串直到控制字符 \a */while( !iscntrl(str1[i]) ) {putchar(str1[i]);i++; }/* 輸出字符串直到控制字符 \n */while( !iscntrl(str2[j]) ) {putchar(str2[j]);j++; }return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
allw3cschool下面的實例演示了 isdigit() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ int var1 = 'h'; int var2 = '2'; if( isdigit(var1) ) { printf("var1 = |%c| 是一個數字\n", var1 ); } else { printf("var1 = |%c| 不是一個數字\n", var1 ); } if( isdigit(var2) ) { printf("var2 = |%c| 是一個數字\n", var2 ); } else { printf("var2 = |%c| 不是一個數字\n", var2 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
var1 = |h| 不是一個數字var2 = |2| 是一個數字下面的實例演示了 isgraph() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ int var1 = '3'; int var2 = 'm'; int var3 = ' '; if( isgraph(var1) ) { printf("var1 = |%c| 是可列印的\n", var1 ); } else { printf("var1 = |%c| 是不可列印的\n", var1 ); } if( isgraph(var2) ) { printf("var2 = |%c| 是可列印的\n", var2 ); } else { printf("var2 = |%c| 是不可列印的\n", var2 ); } if( isgraph(var3) ) { printf("var3 = |%c| 是可列印的\n", var3 ); } else { printf("var3 = |%c| 是不可列印的\n", var3 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
var1 = |3| 是可列印的var2 = |m| 是可列印的var3 = | | 是不可列印的下面的實例演示了 islower() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ int var1 = 'Q'; int var2 = 'q'; int var3 = '3'; if( islower(var1) ) { printf("var1 = |%c| 是小寫字母\n", var1 ); } else { printf("var1 = |%c| 不是小寫字母\n", var1 ); } if( islower(var2) ) { printf("var2 = |%c| 是小寫字母\n", var2 ); } else { printf("var2 = |%c| 不是小寫字母\n", var2 ); } if( islower(var3) ) { printf("var3 = |%c| 是小寫字母\n", var3 ); } else { printf("var3 = |%c| 不是小寫字母\n", var3 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
var1 = |Q| 不是小寫字母var2 = |q| 是小寫字母var3 = |3| 不是小寫字母下面的實例演示了 isprint() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ int var1 = 'k'; int var2 = '8'; int var3 = '\t'; int var4 = ' '; if( isprint(var1) ) { printf("var1 = |%c| 是可列印的\n", var1 ); } else { printf("var1 = |%c| 是不可列印的\n", var1 ); } if( isprint(var2) ) { printf("var2 = |%c| 是可列印的\n", var2 ); } else { printf("var2 = |%c| 是不可列印的\n", var2 ); } if( isprint(var3) ) { printf("var3 = |%c| 是可列印的\n", var3 ); } else { printf("var3 = |%c| 是不可列印的\n", var3 ); } if( isprint(var4) ) { printf("var4 = |%c| 是可列印的\n", var4 ); } else { printf("var4 = |%c| 是不可列印的\n", var4 ); } return(0);} 讓我們編譯並運行上面的程序,這將產生以下結果:
var1 = |k| 是可列印的var2 = |8| 是可列印的var3 = || 是不可列印的var4 = | | 是可列印的下面的實例演示了 ispunct() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ int var1 = 't'; int var2 = '1'; int var3 = '/'; int var4 = ' '; if( ispunct(var1) ) { printf("var1 = |%c| 是標點符號字符\n", var1 ); } else { printf("var1 = |%c| 不是標點符號字符\n", var1 ); } if( ispunct(var2) ) { printf("var2 = |%c| 是標點符號字符\n", var2 ); } else { printf("var2 = |%c| 不是標點符號字符\n", var2 ); } if( ispunct(var3) ) { printf("var3 = |%c| 是標點符號字符\n", var3 ); } else { printf("var3 = |%c| 不是標點符號字符\n", var3 ); } if( ispunct(var4) ) { printf("var4 = |%c| 是標點符號字符\n", var4 ); } else { printf("var4 = |%c| 不是標點符號字符\n", var4 ); } return(0);} 讓我們編譯並運行上面的程序,這將產生以下結果:
var1 = |t| 不是標點符號字符var2 = |1| 不是標點符號字符var3 = |/| 是標點符號字符var4 = | | 不是標點符號字符下面的實例演示了 isspace() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ int var1 = 't'; int var2 = '1'; int var3 = ' '; if( isspace(var1) ) { printf("var1 = |%c| 是空白字符\n", var1 ); } else { printf("var1 = |%c| 不是空白字符\n", var1 ); } if( isspace(var2) ) { printf("var2 = |%c| 是空白字符\n", var2 ); } else { printf("var2 = |%c| 不是空白字符\n", var2 ); } if( isspace(var3) ) { printf("var3 = |%c| 是空白字符\n", var3 ); } else { printf("var3 = |%c| 不是空白字符\n", var3 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
var1 = |t| 不是空白字符var2 = |1| 不是空白字符var3 = | | 是空白字符下面的實例演示了 isupper() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ int var1 = 'M'; int var2 = 'm'; int var3 = '3'; if( isupper(var1) ) { printf("var1 = |%c| 是大寫字母\n", var1 ); } else { printf("var1 = |%c| 不是大寫字母\n", var1 ); } if( isupper(var2) ) { printf("var2 = |%c| 是大寫字母\n", var2 ); } else { printf("var2 = |%c| 不是大寫字母\n", var2 ); } if( isupper(var3) ) { printf("var3 = |%c| 是大寫字母\n", var3 ); } else { printf("var3 = |%c| 不是大寫字母\n", var3 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
var1 = |M| 是大寫字母var2 = |m| 不是大寫字母var3 = |3| 不是大寫字母下面的實例演示了 isxdigit() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ char var1[] = "tuts"; char var2[] = "0xE"; if( isxdigit(var1[0]) ) { printf("var1 = |%s| 是十六進位數字\n", var1 ); } else { printf("var1 = |%s| 不是十六進位數字\n", var1 ); } if( isxdigit(var2[0] )) { printf("var2 = |%s| 是十六進位數字\n", var2 ); } else { printf("var2 = |%s| 不是十六進位數字\n", var2 ); } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
var1 = |tuts| 不是十六進位數字var2 = |0xE| 是十六進位數字標準庫還包含了兩個轉換函數,它們接受並返回一個 "int"
下面的實例演示了 tolower() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ int i = 0; char c; char str[] = "W3CSCHOOL TUTORIALS"; while( str[i] ) { putchar(tolower(str[i])); i++; } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
w3cschool tutorials下面的實例演示了 toupper() 函數的用法。
#include <stdio.h>#include <ctype.h>int main(){ int i = 0; char c; char str[] = "W3Cschool Tutorials"; while(str[i]) { putchar (toupper(str[i])); i++; } return(0);}讓我們編譯並運行上面的程序,這將產生以下結果:
W3CSCHOOL TUTORIALS字符類
最編程,懂編程,更懂世界!