字符分类函数(iscntrl、i是space.....)---c语言

目录

一、定义

C语言中有⼀系列的函数是专门做字符分类的,也就是⼀个字符是属于什么类型的字符的。

需要包含的头文件<ctpy.h>

二、字符分类函数

2.1 -iscntrl()

2.1.1定义

iscntrl () 是 C语言的一个标准库函数,定义在 <ctype.h> 头文件中。 iscntrl () 函数用于检测给定的字符是否为控制字符。 所谓控制字符,指的是 ASCII 码值位于 0x00 (NOL)~0x1f (VS) 之间以及等于 0x7f 的字符。

2.1.2使用举例

c 复制代码
#include <stdio.h>
#include <ctype.h>

int main()
{
    int i = 0, j = 0;
    char str1[] = "all \a about \t programming";
    char str2[] = "Runoob \n tutorials";

    /* 输出字符串直到控制字符 \a */
    while (!iscntrl(str1[i]))
    {
        putchar(str1[i]);
        i++;
    }

    /* 输出字符串直到控制字符 \n */
    while (!iscntrl(str2[j]))
    {
        putchar(str2[j]);
        j++;
    }

    return(0);
}

2.2 -isspace()

2.2.1描述

C 库函数 int isspace(int c) 检查所传的字符是否是空白字符。

标准的空白字符包括:

c 复制代码
' '     (0x20)    space (SPC) 空格符
'\t'    (0x09)    horizontal tab (TAB) 水平制表符    
'\n'    (0x0a)    newline (LF) 换行符
'\v'    (0x0b)    vertical tab (VT) 垂直制表符
'\f'    (0x0c)    feed (FF) 换页符
'\r'    (0x0d)    carriage return (CR) 回车符

2.2.2使用举例

c 复制代码
#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);
}

2.3-isdigit()

2.3.1描述

C 库函数 int isdigit(int c) 检查所传的字符是否是十进制数字字符。

十进制数字是:0 1 2 3 4 5 6 7 8 9

声明:

c 复制代码
int isdigit(int c);

返回值:

如果 c 是一个数字,则该函数返回非零值,否则返回 0。

2.3.2使用举例

c 复制代码
#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);
}

2.4-isxdigit()

2.4.1描述

C 库函数 int isxdigit(int c) 检查所传的字符是否是十六进制数字。

int isxdigit(int c) 参数 c 是单个字符。

十六进制一般用数字 0 到 9 和字母 A 到 F(或 a~f)表示,其中 A~F 表示 10~15: 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F。

返回值:

如果 c 是一个十六进制数字,则该函数返回非零的整数值,否则返回 0。

c 复制代码
#include <ctype.h>
#include <stdio.h>
 
int main() {
   char c = '5';
   int result;
 
   // 传入字符
   result = isxdigit(c); // result 返回非 0
   printf("%c 传入到 isxdigit() 函数结果为: %d", c, isxdigit(c));
   printf("\n");  // 换行
   c = 'M';
 
   // 非十六进制数作为参数
   result = isxdigit(c); // result 为 0
 
   printf("%c 传入到 isxdigit() 函数结果为: %d", c, isxdigit(c));
 
   return 0;
}

2.5-islower()

2.5.1描述

C 库函数 int islower(int c) 检查所传的字符是否是小写字母.

返回值:

如果 c 是一个小写字母,则该函数返回非零值(true),否则返回 0(false)。

2.5.2使用举例

c 复制代码
#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);
}

2.6-isupper()

2.6.1描述

C 库函数 int isupper(int c) 检查所传的字符是否是大写字母。

返回值:

如果 c 是一个大写字母,则该函数返回非零值(true),否则返回 0(false)。

2.6.2使用举例

c 复制代码
#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);
}

2.7-isalpha()

2.7.1描述

C 库函数 void isalpha(int c) 检查所传的字符是否是字母.

如果 c 是一个字母,则该函数返回非零值,否则返回 0。

2.7.2使用举例

c 复制代码
#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);
}

2.8-isalnum

2.8.1描述

C 库函数 void isalnum(int c) 检查所传的字符是否是字母和数字。

返回值:

如果 c 是一个数字或一个字母,则该函数返回非零值,否则返回 0。

2.8.2使用举例

c 复制代码
#include <stdio.h>
#include <ctype.h>

int main()
{
   int var1 = 'd';
   int var2 = '2';
   int var3 = '\t';
   int var4 = ' ';
    
   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);
}

2.9-ispunct()

2.9.1描述

C 库函数 int ispunct(int c) 检查所传的字符是否是标点符号字符。标点符号字符可以是非字母数字(正如 isalnum 中的一样)的任意图形字符(正如 isgraph 中的一样)。

返回值:

C 库函数 int ispunct(int c) 检查所传的字符是否是标点符号字符。标点符号字符可以是非字母数字(正如 isalnum 中的一样)的任意图形字符(正如 isgraph 中的一样)。

2.9.2使用举例

c 复制代码
#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);
}  

2.10-isgraph()

2.10.1描述

isgraph() 函数用来检测一个字符是否是图形字符。

具有图形表示的字符是已知的图形字符。

isgraph()检查字符是否为图形字符。如果传递给isgraph()的参数是图形字符,则它将返回非零整数。如果不是,则返回0。

isgraph()函数采用单个参数并返回整数。

当将字符作为参数传递时,将传递字符的相应ASCII值,而不是传递该字符本身。

2.10.2使用举例

c 复制代码
#include <stdio.h>
#include <ctype.h>
int main()//打印所有图形字符
{
    int i;
    printf("C编程中的所有图形字符为: \n");
    for (i=0;i<=127;++i)
    {
        if (isgraph(i)!=0)
            printf("%c ",i);
    }
    return 0;
}

2.11-isprint()

2.11.1描述

C 库函数 int isprint(int c) 检查所传的字符是否是可打印的。可打印字符是非控制字符的字符.

返回值:

如果 c 是一个可打印的字符,则该函数返回非零值(true),否则返回 0(false).

2.11.2使用举例

c 复制代码
#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);
}   

三、总结


欧耶!!!我学会啦!!!!

相关推荐
北岛寒沫4 分钟前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
烟雨666_java5 分钟前
JDBC笔记
笔记
2401_858286116 分钟前
52.【C语言】 字符函数和字符串函数(strcat函数)
c语言·开发语言
GEEKVIP6 分钟前
Android 恢复挑战和解决方案:如何从 Android 设备恢复删除的文件
android·笔记·安全·macos·智能手机·电脑·笔记本电脑
铁松溜达py7 分钟前
编译器/工具链环境:GCC vs LLVM/Clang,MSVCRT vs UCRT
开发语言·网络
everyStudy7 分钟前
JavaScript如何判断输入的是空格
开发语言·javascript·ecmascript
jiao000012 小时前
数据结构——队列
c语言·数据结构·算法
铁匠匠匠2 小时前
从零开始学数据结构系列之第六章《排序简介》
c语言·数据结构·经验分享·笔记·学习·开源·课程设计
C-SDN花园GGbond2 小时前
【探索数据结构与算法】插入排序:原理、实现与分析(图文详解)
c语言·开发语言·数据结构·排序算法
Moliay2 小时前
【资料分析】刷题日记2
笔记·公考·行测·常识·资料分析