Ctype库中的函数

关于cctype头⽂件⾥的⼀些函数
刚刚在头⽂件那⼀段中也提到,cctype本质上是C语⾔标准函数库中的头⽂件 #include
<ctype.h> ,其实并不属于C++新特性的范畴,在刷PAT⼀些字符串逻辑题的时候也经常⽤到,但是很多⼈似乎不了解这个头⽂件中的函数,所以在这⾥单独提⼀下~
可能平时我们判断⼀个字符是否是字⺟,可能会写:

	char c;
	cin >> c;
	if (c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') {
		 cout << "c is alpha";
	}

但是在cctype中已经定义好了判断这些字符应该所属的范围,直接引⼊这个头⽂件并且使⽤⾥⾯的函数判断即可,⽆需⾃⼰⼿写(⾃⼰⼿写有时候可能写错或者漏写~)
不仅仅能判断字⺟,还能判断数字、⼩写字⺟、⼤写字⺟等~C++官⽅⽂档中对这些函数归纳成了⼀个表格, 【C++】isalpha、islower、isupper、isalnum、isblank、isspace函数头⽂件
总的来说常⽤的只有以下⼏个:
isalpha 字⺟(包括⼤写、⼩写)
islower(⼩写字⺟)
isupper(⼤写字⺟)
isalnum(字⺟⼤写⼩写+数字)
isblank(space和\t)
isspace(space、\t、\r、\n)
isdigit (是否是数字)
特别说下 如果是 string类型的字符 或者是 char类型的字符 不需要用下面的写法,也不能这样用

	string str;
	cin >> str;
	for(int i = 0;i < str.size();i++){
		if(isdigit(str[i] - '0')){
			cout << "OK " << endl;
		}
	} 

直接这样写就行:

		for( j= 0;j < id.size() - 1;j++){
			if(isdigit(id[j])){
				sum += (id[j] - '0') * arr[j];	
			}else{
				cout << id << endl;
				break;
			}
		}

cctype中除了上⾯所说的⽤来判断某个字符是否是某种类型,还有两个经常⽤到的函数:tolower和toupper,作⽤是将某个字符转为⼩写或者⼤写,这样就不⽤像原来那样⼿动判断字符c是否是⼤写,
如果是⼤写字符就 c = c + 32; 的⽅法将c转为⼩写字符啦~这在字符串处理的题⽬中也是经常⽤到:

#include <iostream>
#include <cctype>
using namespace std;
int main() {
 	char c;
	 cin >> c;
	 if (isalpha(c)) {
		 cout << "c is alpha";
	 }
 	return 0;
}
char c = 'A';
char t = tolower(c); // 将c字符转化为⼩写字符赋值给t,如果c本身就是⼩写字符也没有
关系~
cout << t; // 此处t为'a'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值