ctype.h中函数测试

下面的代码测试了ctype.h中的主要"函数",这里的函数打引号,说明这里的函数不是真正的函数,只是宏定义而已;另外,掌握该头文件的方法是熟记ascii码表。

/*
 * 版权,文件变更信息说明
 * 文件名:TestCType.cpp
 * 作用:测试ctype.h头文件中的字符测试函数
 * 原作者:zxh
 * 最新修改:zxh
 * 最新修改时间:2010-06-18
 
*/

#include
< stdio.h >
#include
< stdlib.h >

/*
 * 主要测试该头文件中的如下函数:
 * isalnum , isdigit , isalpha , isascii , iscntrl , ispunct
 * isgraphics , isprint , islower , isupper , isxdigit
 * 需要注意的是:这些均为宏定义,非真正函数。
 * int isalnum (int c) 测试字符是否为英文或数字,在标准c中相当于使用“isalpha(c) || isdigit(c)”
 * int isalpha (int c) 检查参数c是否为英文字母 ,在标准c中相当于使用“isupper(c)||islower(c)”
 * int isascii(int c)  检查参数c是否为ASCII码字符,也就是判断c的范围是否在0到127之间。
 * int iscntrl(int c)  检查参数c是否为ASCII控制码,也就是判断c的范围是否在0到30之间。
 * int isdigit(int c)  检查参数c是否为阿拉伯数字0到9。
 * int isgraph (int c) 检查参数c是否为可打印字符,若c所对映的ASCII码可打印,且非空格字符则返回TRUE。
 * int islower(int c)  检查参数c是否为小写英文字母。
 * int isprint(int c)  检查参数c是否为可打印字符,若c所对映的ASCII码可打印,其中包含空格字符,则返回TRUE。
 * int isspace(int c)  检查参数c是否为空格字符,也就是判断是否为空格('')、定位字符('\t')、CR('\r')、换行('\n')、垂直定位字符('\v')或翻页('\f')的情况。
 * int ispunct(int c)  检查参数c是否为标点符号或特殊符号。返回TRUE也就是代表参数c为非空格、非数字和非英文字母。
 * int isupper(int c)  检查参数c是否为大写英文字母。
 * int isxdigit (int c)检查参数c是否为16进制数字,只要c为下列其中一个情况则返回TRUE。16进制数字:0123456789ABCDEF。
 
*/
#include
< ctype.h >

int  main( char  argc, char   * argv[])
{

    
char   * str  =   "  123c@#FDsP[e? " ;

    
int  i  =   0 ;

    
for (i  =   0 ; str[i]  !=   ' \0 '  ; i ++ )
    {
        
// 测试该字符是否为字母数字
         if (isalnum(str[i]))
            printf(
" %c is an alphanumeric character\n " ,str[i]);

        
// 测试该字符是否为字母
         if (isalpha(str[i]))
            printf(
" %c is an alphabetic character\n " ,str[i]);

        
// 测试该字符是否在0-127之间
         if (isascii(str[i]))
            printf(
" %c is an ascii character\n " ,str[i]);

        
// 其余的同理测试
        
// ... ...
    }

    
/*
     * 暂停程序以便查看结果,在stdlib.h头文件中
     
*/
    system(
" pause " );
    
    
/*
     * 成功返回
     
*/
    
return   0 ;
}

 

 新的测试文件:

  1 // 作用:测试<cctype>中的相关字符测试函数

 2  //  总结:(1)了解ASCII码表,知道常见字符对应的ASCII码值(2)这些判读函数其实是宏
 3  //  时间:2010-09-01
 4 
 5  #include  " stdafx.h "
 6 
 7  int  _tmain( int  argc, _TCHAR *  argv[])
 8  {
 9       int  digits = 0 ;      // 数字(0~10 48~57)
10       int  alphas = 0 ;      // 字母(a~z 97~122,A~Z 65~90)  
11       int  alnums = 0 ;      // 数字 || 字母 
12       int  cntrls = 0 ;      // 控制字符(0~30)  
13       int  asciis = 0 ;      // ascii字符(0~127)
14       int  graphics = 0 ;    // 可显示字符(不包括空格)
15       int  prints = 0 ;      // 可打印字符(包括空格)
16       int  lowers = 0 ;      // 小写字母  
17       int  uppers = 0 ;      // 大写字母
18       int  spaces = 0 ;      // 空格(包括空格,翻页,制表符等) 
19       int  puncts = 0 ;      // 除数字字母和空格外的字符 
20       int  xdigits = 0 ;     // 十六进制字符 
21 
22       // 介于0~127之间的数填充数组
23       int *  randomInts  =   new   int [ 10000 ];
24 
25       for ( int  i  = 0  ; i < 10000 ;i ++ )
26      {
27          randomInts[i]  =  rand()  %   127 ;
28      }
29 
30       for ( int  i = 0 ;i < 10000 ;i ++ )
31      {
32           if (isdigit(randomInts[i]))
33              digits ++ ;
34           if (isalpha(randomInts[i]))
35              alphas ++ ;
36           if (isalnum(randomInts[i]))
37              alnums ++ ;
38           if (iscntrl(randomInts[i]))
39              cntrls ++ ;
40           if (isascii(randomInts[i]))
41              asciis ++ ;
42           if (isgraph(randomInts[i]))
43              graphics ++ ;
44           if (isdigit(randomInts[i]))
45              digits ++ ;
46           if (isprint(randomInts[i]))
47              prints ++ ;
48           if (islower(randomInts[i]))
49              lowers ++ ;
50           if (isupper(randomInts[i]))
51              uppers ++ ;
52           if (isspace(randomInts[i]))
53              spaces ++ ;
54           if (ispunct(randomInts[i]))
55              puncts ++ ;
56           if (isxdigit(randomInts[i]))
57              xdigits ++ ;
58      }
59 
60      printf( " 数字:%d " ,digits);
61      printf( " \n字母:%d " ,alphas);
62      printf( " \n数字字母:%d " ,alnums);
63      printf( " \n控制字符:%d " ,cntrls);
64      printf( " \nascii字符:%d " ,asciis);
65      printf( " \n可显示字符:%d " ,graphics);
66      printf( " \n可打印字符:%d " ,prints);
67      printf( " \n小写字母:%d " ,lowers);
68      printf( " \n大写字母:%d " ,uppers);
69      printf( " \n空格:%d " ,spaces);
70      printf( " \n标点:%d " ,puncts);
71      printf( " \n十六进制数:%d " ,xdigits);
72      system( " pause " );
73  }

 

你可能感兴趣的:(type)