【C语言】深剖字符串函数和内存函数3

简介: 【C语言】深剖字符串函数和内存函数

2. 字符函数


2.1 字符分类函数


函数 如果它的参数符合下列条件就返回真
incntrl 任何控制字符
isspace 空白字符:空格‘ ’,换页‘\f’,换行’\n’,回车‘\r’,制表符’\t’或者垂直制表符’\v’
isdigit 十进制数字 0~9
isxdigit 十六进制数字,包括所有十进制数字,小写字母 a~f,大写字母 A~F
islower 小写字母 a~z
isupper 大写字母 A~Z
isalpha 字母 a~z或 A~Z
isalnum 字母或数字 a~z, A~Z, 0~9
ispunct 标点符号,任何不属于数字或者字母的图形字符(可打印)
isgraph 任何图形字符
isprint 任何可打印字符,包括图形字符和空白字符




2.1.1 iscntrl

int iscntrl( int c );


控制字符:0~31及127(共33个)为控制字符或通讯专用字符,如换行,回车,换页,删除等控制字符,SOH(文头)、EOT(文尾)、ACK(确认)等通讯专用字符。


样例:

int main()
{
  int ret = iscntrl('\n');
  printf("%d\n", ret);
  ret = iscntrl('a');
  printf("%d\n", ret);//不是控制字符,返回假(0)
  ret = iscntrl('1');
  printf("%d\n", ret);
  return 0;
}

运行结果:

3c83e0c7d6fa614ea7759dc68caf97b1.png


2.1.2 isspace

int isspace( int c );



空白字符:空格‘ ’,换页‘\f’,换行’\n’,回车‘\r’,制表符’\t’或者垂直制表符’\v’。

样例:

int main()
{
  int ret = isspace('\t');
  printf("%d\n", ret);
  ret = isspace(' ');
  printf("%d\n", ret);
  ret = isspace('\v');
  printf("%d\n", ret);
  ret = isspace('1');//假
  printf("%d\n", ret);
  return 0;
}

运行结果:


17c72c58b6d5866eca013712d3ba5236.png


2.1.3 isdigit

int isdigit( int c );


十进制数字 0~9

样例:

int main()
{
  int ret = isdigit('9');
  printf("%d\n", ret);
  //ret = isdigit('10');//err 不是0~9,为字符串
  //printf("%d\n", ret);
  ret = isdigit('a');
  printf("%d\n", ret);
}

运行结果:

ef6ba9ddeb35c27f0e7ba7a7c2b11868.png


2.1.4 isxdigit

int isxdigit( int c );


十六进制数字,包括所有十进制数字,小写字母 a~f,大写字母 A~F

样例:

int main()
{
  int ret = isxdigit('9');//0~9
  printf("%d\n", ret);
  ret = isxdigit('a');//a~f
  printf("%d\n", ret);
  ret = isxdigit('E');//A~F
  printf("%d\n", ret);
  ret = isxdigit('\n');//假
  printf("%d\n", ret);
  return 0;
}

运行结果:

077a993250c106580e167eb938bc2203.png


2.1.5 islower

int islower( int c );


小写字母 a~z

样例:


int main()
{
  int ret = islower('a');
  printf("%d\n", ret);
  ret = islower('z');
  printf("%d\n", ret);
  ret = islower('\n');//假
  printf("%d\n", ret);
  return 0;
}


运行结果:

6fa3d5f67a47946cad53336d6aa68396.png


2.1.6 isupper

int isupper( int c );


大写字母 A~Z

样例:

int main()
{
  int ret = isupper('A');
  printf("%d\n", ret);
  ret = isupper('Z');
  printf("%d\n", ret);
  ret = isupper('a');//假
  printf("%d\n", ret);
  return 0;
}


运行结果:

93aef6336608b32064eb94cad1bd4a64.png


2.1.7 isalpha

int isalpha( int c );


字母 a~z或 A~Z

样例:

int main()
{
  int ret = isalpha('A');//真
  printf("%d\n", ret);
  ret = isalpha('G');//真
  printf("%d\n", ret);
  ret = isalpha('a');//真
  printf("%d\n", ret);
  ret = isalpha('\n');//假
  printf("%d\n", ret);
  return 0;
}


运行结果:13fd60877f80950b0f0985dbff7e2b21-1.png


2.1.8 isalnum

int isalnum( int c );


字母或数字 a~z, A~Z, 0~9

样例:

int main()
{
  int ret = isalnum('A');//真
  printf("%d\n", ret);
  ret = isalnum('a');//真
  printf("%d\n", ret);
  ret = isalnum('8');//真
  printf("%d\n", ret);
  ret = isalnum('\n');//假
  printf("%d\n", ret);
  return 0;
}


运行结果:

90f1e3ece8e3a1bb506c72e3923b6d39.png


2.1.9 ispunct

int ispunct( int c );


标点符号,任何不属于数字或者字母的图形字符(可打印)

简单来说就是除了数字和字母的任何其他可见字符,总体来说就是标点符号

样例:

int main()
{ 
  int ret = ispunct(',');//逗号
  printf("%d\n", ret);
  ret = ispunct('!');//感叹号
  printf("%d\n", ret);
  ret = ispunct('7');//err 数字
  printf("%d\n", ret);
  ret = ispunct('a');//err 字母
  printf("%d\n", ret);
  ret = ispunct(' ');//空白字符,不可见
  printf("%d\n", ret);
  return 0;
}


运行结果:

41c47667c656ff490531e0e229aff005.png


2.1.10 isgraph

int isgraph( int c );


任何图形字符

图形字符:除空格以外的任何可打印字符。可以理解为就是检测一个字符是否是一个可见字符。

样例:

int main()
{
  int ret = isgraph('1');//ok
  printf("%d\n", ret);
  ret = isgraph('!');//ok
  printf("%d\n", ret);
  ret = isgraph('a');//ok
  printf("%d\n", ret);
  ret = isgraph(1);//笑脸的ascii码值 不可见字符
  printf("%d\n", ret);
    return 0;
}


运行结果:c081ebe312ee74a412e00a9373506858.png


2.1.11 isprint

int isprint( int c );


任何可打印字符,包括图形字符和空白字符

样例:

int main()
{
  int ret = isprint('a');//字母
  printf("%d\n", ret);
  ret = isprint(' ');//空白字符
  printf("%d\n", ret);
  ret = isprint(',');//标点符号
  printf("%d\n", ret);
  ret = isprint(1);//不可见字符
  printf("%d\n", ret);
  return 0;
}

运行结果:

83d041455f7bd4e439f12e123ed019fa.png


2.2 字符转换函数


2.2.1 tolower

int tolower( int c );


将大写字符转换为小写,其他字符则不进行操作

int main()
{
  char ch1 = '1';
  char ch2 = 'A';
  char ch3 = 'a';
  printf("%c\n", tolower(ch1));
  printf("%c\n", tolower(ch2));
  printf("%c\n", tolower(ch3));
  return 0;
}


运行结果:

400aa0ef8a6c6770190ca224c9a6a371.png


2.2.2 toupper

int toupper( int c );

将小写字符转换为大写,其他字符则不进行操作

int main()
{
  char ch1 = '1';
  char ch2 = 'A';
  char ch3 = 'a';
  printf("%c\n", toupper(ch1));
  printf("%c\n", toupper(ch2));
  printf("%c\n", toupper(ch3));
  return 0;
}

运行结果:

2083e981b9ebd639914f6b1e268972e6.png


相关文章
|
19天前
|
存储 编译器 程序员
【C语言】内存布局大揭秘 ! -《堆、栈和你从未听说过的内存角落》
在C语言中,内存布局是程序运行时非常重要的概念。内存布局直接影响程序的性能、稳定性和安全性。理解C程序的内存布局,有助于编写更高效和可靠的代码。本文将详细介绍C程序的内存布局,包括代码段、数据段、堆、栈等部分,并提供相关的示例和应用。
31 5
【C语言】内存布局大揭秘 ! -《堆、栈和你从未听说过的内存角落》
|
19天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
39 10
|
19天前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
42 9
|
19天前
|
存储 Unix Serverless
【C语言】常用函数汇总表
本文总结了C语言中常用的函数,涵盖输入/输出、字符串操作、内存管理、数学运算、时间处理、文件操作及布尔类型等多个方面。每类函数均以表格形式列出其功能和使用示例,便于快速查阅和学习。通过综合示例代码,展示了这些函数的实际应用,帮助读者更好地理解和掌握C语言的基本功能和标准库函数的使用方法。感谢阅读,希望对你有所帮助!
31 8
|
19天前
|
C语言 开发者
【C语言】数学函数详解
在C语言中,数学函数是由标准库 `math.h` 提供的。使用这些函数时,需要包含 `#include <math.h>` 头文件。以下是一些常用的数学函数的详细讲解,包括函数原型、参数说明、返回值说明以及示例代码和表格汇总。
40 6
|
19天前
|
存储 C语言
【C语言】输入/输出函数详解
在C语言中,输入/输出操作是通过标准库函数来实现的。这些函数分为两类:标准输入输出函数和文件输入输出函数。
108 6
|
19天前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
48 6
|
19天前
|
C语言 开发者
【C语言】断言函数 -《深入解析C语言调试利器 !》
断言(assert)是一种调试工具,用于在程序运行时检查某些条件是否成立。如果条件不成立,断言会触发错误,并通常会终止程序的执行。断言有助于在开发和测试阶段捕捉逻辑错误。
27 5
|
23天前
|
传感器 人工智能 物联网
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发,以及面临的挑战和未来趋势,旨在帮助读者深入了解并掌握这些关键技术。
40 6
|
24天前
|
存储 算法 程序员
C 语言指针详解 —— 内存操控的魔法棒
《C 语言指针详解》深入浅出地讲解了指针的概念、使用方法及其在内存操作中的重要作用,被誉为程序员手中的“内存操控魔法棒”。本书适合C语言初学者及希望深化理解指针机制的开发者阅读。