【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


相关文章
|
2月前
|
存储 C语言
`scanf`是C语言中用于按格式读取标准输入的函数
`scanf`是C语言中用于按格式读取标准输入的函数,通过格式字符串解析输入并存入指定变量。需注意输入格式严格匹配,并建议检查返回值以确保读取成功,提升程序健壮性。
905 0
|
4月前
|
安全 C语言
C语言中的字符、字符串及内存操作函数详细讲解
通过这些函数的正确使用,可以有效管理字符串和内存操作,它们是C语言编程中不可或缺的工具。
297 15
|
9月前
|
人工智能 Java 程序员
一文彻底搞清楚C语言的函数
本文介绍C语言函数:函数是程序模块化的工具,由函数头和函数体组成,涵盖定义、调用、参数传递及声明等内容。值传递确保实参不受影响,函数声明增强代码可读性。君志所向,一往无前!
308 1
一文彻底搞清楚C语言的函数
|
10月前
|
存储 编译器 C语言
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
353 3
|
4月前
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
1428 0
|
4月前
|
存储 缓存 NoSQL
内存管理基础:数据结构的存储方式
数据结构在内存中的存储方式主要包括连续存储、链式存储、索引存储和散列存储。连续存储如数组,数据元素按顺序连续存放,访问速度快但扩展性差;链式存储如链表,通过指针连接分散的节点,便于插入删除但访问效率低;索引存储通过索引表提高查找效率,常用于数据库系统;散列存储如哈希表,通过哈希函数实现快速存取,但需处理冲突。不同场景下应根据访问模式、数据规模和操作频率选择合适的存储结构,甚至结合多种方式以达到最优性能。掌握这些存储机制是构建高效程序和理解高级数据结构的基础。
415 1
|
4月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
396 0
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
889 0

热门文章

最新文章