C 语言字符测试函数的用法举例 - 2016.01.01

来源:互联网 发布:360全景展示软件 编辑:程序博客网 时间:2024/04/27 22:13

   2016年的第一天祝大家元旦快乐!由于今天有考试,昨天晚上写的匆忙,只是简简单单地写出了C语言中字符测试函数,却没有详细讲解其使用。接下来让我们切身感受一下它的存在。首先我需要补充的一点是这些函数的本质是宏定义,并不是一种方法。至于宏定义的概念,大概就是说在程序进行预编译的时候,进行代码的加载、替换,并不占用内存空间。假设我们用define定义了一个Man 代表 “ghn” ,则我们进行预编译的时候所有的Man都将被“ghn”原封不动的替换。同样如果Man代指一段代码,也是同样的效果。

   直接上代码吧,需要的头文件为 <ctype.h> 、<string.h> 、<stdio.h> ,当然如果你需要调用system("pause")稳定屏幕的话,还是需要<stdlib.h>头文件的。

(1)判断是否为十六进制

    char a[] = "0149ACEFGH" ;
    for(int i=0 ; i < strlen(a) ; i++)
    {
            if( isxdigit(a[i]) ) 
            printf("a[%d] -> %c 是十六进制\n",i,a[i]);
            else
            printf("a[%d] -> %c 不是十六进制\n",i,a[i]);
    }

(2)判断是否是数字

    char b[] = "012adSD" ;
    for(int i=0 ; i < strlen(b) ; i++)
    {
            if( isdigit(b[i]) ) 
            printf("c[%d] -> %c 是数字\n",i,b[i]);
            else
            printf("c[%d] -> %c 不是数字\n",i,b[i]);
    }

(3)判断是否为大写

    char c[] = "asdGHG012" ;
    for(int i=0 ; i < strlen(c) ; i++)
    {
            if( isupper(c[i]) ) 
            printf("c[%d] -> %c 是大写\n",i,c[i]);
            else
            printf("c[%d] -> %c 不是大写\n",i,c[i]);
    }

(4)判断是否为小写

     for(int i=0 ; i < strlen(c) ; i++)
    {
            if( islower(c[i]) ) 
            printf("c[%d] -> %c 是小写\n",i,c[i]);
            else
            printf("c[%d] -> %c 不是小写\n",i,c[i]);
    }

(5)判断是否为英文

    char h[] = "01 A &i$et@" ;
    for(int i=0 ; i < strlen(h) ; i++)
    {
            if( isalpha(f[i]) ) 
            printf("h[%d] -> %c 是英文字符\n",i,h[i]);
            else
            printf("h[%d] -> %c 不是英文字符\n",i,h[i]);
    }

(6)判断是否为英文或数字

   char d[] = "0149AaGe@!* &/t" ;
    for(int i=0 ; i < strlen(d) ; i++)
    {
            if( isalnum(d[i]) ) 
            printf("d[%d] -> %c 是英文字母或者数字\n",i,d[i]);
            else
            printf("d[%d] -> %c 不是英文字母且数字\n",i,d[i]);
    }

(7)判断是否为ascii码

    for(int i=120 ; i < 130 ; i++)
    {
            if( isascii(c[i]) ) 
            printf("%d 所对应的字符 %c ,是 ascii \n",i,i);
            else
            printf("%d 所对应的字符,不是 ascii \n",i);
    }

(8)判断是否为特殊字符或者标点符号

    char g[] = "Hello , World!!!@@!*&" ;
    for(int i=0 ; i < strlen(g) ; i++)
    {
            if( ispunct(g[i]) ) 
            printf("g[%d] -> %c 是特殊符号或者标点符号\n",i,g[i]);
            else
            printf("g[%d] -> %c 不是特殊符号和标点符号\n",i,g[i]);
    }

(9)判断是否为可打印字符

    for(int i=0 ; i < 50 ; i++)
    {
            if( isprint(c[i]) ) 
            printf("%d 所对应的字符 -> %c 是可打印字符\n",i,i);
            else
            printf("%d 所对应的字符,不是可打印字符\n",i);
    }

(10)判读是否为控制字符

    for(int i=0 ; i < 50 ; i++)
    {
            if( iscntrl(c[i]) ) 
            printf("%d 所对应的字符,是控制字符\n",i);
            else
            printf("%d 所对应的字符,不是控制字符\n",i);
    }

(11)判断是否为空格以外的可打印字符

     char f[] = "01 A &i$et@" ;    

     for(int i=0 ; i < strlen(f) ; i++)
    {
            if( isgraph(f[i]) ) 
            printf("f[%d] -> %c 是除了空格以外的可打印字符\n",i,f[i]);
            else
            printf("f[%d] -> %c 不是除了空格以外的可打印字符\n",i,f[i]);
    }

(12)判断是否为空格

    char e[] = "0 1 A e t" ;
    for(int i=0 ; i < strlen(e) ; i++)
    {
            if( isspace(e[i]) ) 
            printf("e[%d] -> %c 是空格\n",i,e[i]);
            else
            printf("e[%d] -> %c 不是空格\n",i,e[i]);
    }


1 0
原创粉丝点击