字符分类函数与字符转换函数

字符分类函数

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

具体用法在Cplusplus中有介绍
链接: https://legacy.cplusplus.com/reference/cctype/

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

这些函数的使用方法非常类似,例如:int islower ( int c );

islower是能够判断参数部分的c是否是小写字母的。
通过返回值来说明是否是小写字母,如果是小写字母就返回非0的整数,如果不是小写字母,则返回0。

代码演示:字符串中的小写字母转大写,其他字符不变。

不适用这个字符转换大小写是这样的:

int main()
{
	char a = 0;
	scanf("%c", &a);
	printf("%c\n", a);
	if (a >= 65 && a <= 90)
		a += 32;
	else if (a >= 97 && a <= 122)
	{
		a -= 32;
	}
	printf("%c\n", a);
	return 0;
}

使用库函数转换就是这样的

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

字符转换函数

函数功能
int tolower ( int c )将参数传进去的小写字母转大写
int toupper ( int c )将参数传进去的大写字母转小写

上面的代码,我们将小写转大写,是-32完成的效果,有了转换函数,就可以直接使用tolower函数。

#include <stdio.h>
#include <ctype.h>
int main()
{
	int i = 0;
	char str[] = "Test String.\n";
	char c;
	while (str[i])
	{
		c = str[i];
		if (islower(c))
			c = toupper(c);
		putchar(c);
		i++;
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值