C语言 之 字符相关函数

文章目录

本章内容主要讲的是c语言中的字符相关的一些函数的作用用法和使用

为了方便我们对字符的各种操作,C语⾔标准库中提供了⼀系列库函数,我们大概可以根据其功能分成两类函数

字符分类函数

C语言中有一系列函数是专门用于字符分类的,也就是判断一个字符属于是属于什么类型的字符
这些函数的使用都需要包含一个头文件: ctype.h

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

例如 :我们来使用一下函数 isdigit

我们这里的字符是十进制数字7,所以返回值为真,即非0

那么如果我们将字符7 换成 字符a

那么输出的结果为假,即为0

其它函数的用法都是类似的,可以自行去实践使用


例题:

写⼀个代码,将字符串中的小写字母转大写,其他字符不变。

复制代码
#include <stdio.h>
#include <ctype.h>
int main() 
{ 	
  int i = 0; 	
  char str[] = "Hello Fallzzzzz\n"; 	
  char c; 	
  while (str[i]) 	
  { 		
  c = str[i]; 		
  if(islower(c))
  {
  c -= 32; 		
  } 			
  putchar(c); 		
  ++i; 	
  } 	
  return 0; 
} 

使用我们学习到的知识,islower(c) 能够判断一个字符是否是a-z,如果是则为真,则进入到if语句中。

这里的putchar是输出字符的函数,即一个字符一个字符的输出
所以输出结果为:

字符转换函数

C语⾔提供了2个字符转换函数:

int tolower ( int c ); //将参数传进去的大写字母转小写
int toupper ( int c ); //将参数传进去的小写字母转大写

再根据上面的例题,上面的例题中我们想要将字符从小写转化为大写,使用的是c -= 32; 的方法,那我们有了转换函数的话,那当然就可以直接使用啦!

例题:

复制代码
#include <stdio.h>
#include <ctype.h>
int main()
{
	int i = 0;
	char str[] = "Hello Fallzzzzz\n";
	char c;
	while (str[i])
	{
		c = str[i];
		if (islower(c))
		{
			c = toupper(c);  //使用转换函数
		}
		putchar(c);
		++i;
	}
	return 0;
}

这样能达到同样的输出效果:

以上就是字符相关的库函数啦,适当的使用这些库函数能够提高我们的工作效率

相关推荐
xingke10 小时前
C 语言多文件编程:(一)头文件、extern、编译链接
c语言·开发语言·多文件
wuyk55511 小时前
38.什么是C语言?从语法到工程落地的工程师视角解读
c语言·开发语言·stm32·单片机·mcu·51单片机
某不知名網友14 小时前
C/C++动态内存管理,智能指针及RAlI思想。
java·c语言·c++
一杯奶茶¥15 小时前
c语言程序设计大学期末考试考研知识点重点笔记题库复习资料C语言重点考点题库资料合集
c语言·笔记·考研·c语言程序设计·c语言笔记
p似笑非笑17 小时前
在Mac上完美配置VSCode的C/C++开发环境(GCC/G++详细教程)
c语言·vscode·macos
光芒Shine19 小时前
【C语言-记录点】
c语言
--小林哥--20 小时前
有关ADC的规则组注入组区别的形象解释
c语言
时间的拾荒人21 小时前
C语言编译与链接:从源码到可执行程序的完整解析
c语言·开发语言
不负岁月无痕1 天前
STL -- C++ 红黑树封装 Map 和 Set
java·c语言·开发语言·c++·面试
luj_17681 天前
残熵算法实时化三大瓶颈突破
c语言·开发语言·网络·经验分享·算法