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

2024-03-17 18:44

本文主要是介绍字符分类函数(iscntrl、i是space.....)---c语言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、定义
  • 二、字符分类函数
    • 2.1 -iscntrl()
      • 2.1.1定义
      • 2.1.2使用举例
    • 2.2 -isspace()
      • 2.2.1描述
      • 2.2.2使用举例
    • 2.3-isdigit()
      • 2.3.1描述
      • 2.3.2使用举例
    • 2.4-isxdigit()
      • 2.4.1描述
    • 2.5-islower()
      • 2.5.1描述
      • 2.5.2使用举例
    • 2.6-isupper()
      • 2.6.1描述
      • 2.6.2使用举例
    • 2.7-isalpha()
      • 2.7.1描述
      • 2.7.2使用举例
    • 2.8-isalnum
      • 2.8.1描述
      • 2.8.2使用举例
    • 2.9-ispunct()
      • 2.9.1描述
      • 2.9.2使用举例
    • 2.10-isgraph()
      • 2.10.1描述
      • 2.10.2使用举例
    • 2.11-isprint()
      • 2.11.1描述
      • 2.11.2使用举例
  • 三、总结

一、定义

C语言中有⼀系列的函数是专门做字符分类的,也就是⼀个字符是属于什么类型的字符的。
在这里插入图片描述
需要包含的头文件<ctpy.h>
在这里插入图片描述

二、字符分类函数

2.1 -iscntrl()

2.1.1定义

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

2.1.2使用举例

#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) 检查所传的字符是否是空白字符。
标准的空白字符包括:

' '     (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使用举例

#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
声明:

int isdigit(int c);

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

2.3.2使用举例

#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。

#include <ctype.h>
#include <stdio.h>int main() {char c = '5';int result;// 传入字符result = isxdigit(c); // result 返回非 0printf("%c 传入到 isxdigit() 函数结果为: %d", c, isxdigit(c));printf("\n");  // 换行c = 'M';// 非十六进制数作为参数result = isxdigit(c); // result 为 0printf("%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使用举例

#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使用举例

#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使用举例

#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使用举例

#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使用举例

#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使用举例

#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使用举例

#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);
}   

在这里插入图片描述

三、总结

在这里插入图片描述
在这里插入图片描述
欧耶!!!我学会啦!!!!

这篇关于字符分类函数(iscntrl、i是space.....)---c语言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819806

相关文章

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一