学习头文件<ctype.h>旗下的函数了,每天都会根据我的学习进度在此基础上那个更新的哦

1、tolower&&toupper

将大写字母转换为小写字母&&将小写字母转换为大写字母

#include<stdio.h>
#include<cctype>//或者#include<ctype.h> 
int main()
{
	char str[]="the People's Republic of China\n";
	
	int i;
	

	for(i=0;str[i]!='\0';i++)
	{
		putchar(tolower(str[i]));//大写转小写 
	}
	for(i=0;str[i]!='\0';i++)
	{
		putchar(toupper(str[i]));//小写转大写 
	}
	
	return 0;
}

值得注意的是:要遍历字符串,一个一个字符转换;不能直接代入整个字符串。

2、isalpha

判断是否为字母

#include<stdio.h>
#include<cctype>//或者#include<ctype.h> 
int main()
{
	int c;
	c='x';
	printf("%c:%s\n",c,isalpha(c)?"是英文字母":"不是英文字母"); 
	//原型是 %c:%s;%c指c的值,%s指输出 是英文字母 或 不是英文字母 作为一串字符 ;?:用来判断,就像max=a>b?a,b的原理; 
	//若c为字母,则isalpha(c)为真,输出前者;若c不为字母,则为假,输出后者; 
	c='6';
	printf("%c:%s\n",c,isalpha(c)?"是英文字母":"不是英文字母"); 
	c='&';
	printf("%c:%s\n",c,isalpha(c)?"是英文字母":"不是英文字母"); 
	return 0;
}

 3、isascii

判断ascii是否位于0-127之间,判断是否为ascii码

#include<stdio.h>
#include<cctype>//或者#include<ctype.h> 
int main()
{
	int i,n;
	char str[]={'B','3','a','y' };
	n=sizeof(str)/sizeof(char);//只能用于数组类型,计算字符串长度,不能用于指针
//若str为指针,则sizeof(str)返回的是指针本身的大小,一定大于等于字符串的大小
	for(i=0;i<n;i++)
	{
		printf("%c%s是一个scaii字符\n",str[i],(isascii(str[i]))?"":"不"); 
	 } 
	return 0;
}

引:如何求指针型字符串的长度大小:

没有什么好方法,遍历找每个字符,直到遇到'\0'时结束

4、 iscntrl  代码未完成

判断是否为控制字符(控制字符sacll码是0-31,和0x7f)

#include<stdio.h>
#include<cctype>//或者#include<ctype.h> 
int main()
{
	int c;
	c='c';
	printf("%c:%s是控制字符\n",c,iscntrl(c)?"":"不");
	c=13;
	printf("sacll码为%c的字符%s是控制字符\n",c,iscntrl(c)?"":"不");
	c=0x7f;
		printf("sacll码为%c的字符%s是控制字符\n",c,iscntrl(c)?"":"不");
	return 0;
}

释:

控制字符(不可打印字符:是指在计算机中用于控制外围设备或者显示器的字符,例如换行符、回车符等。

非控制字符(可打印字符:则是指可以直接显示在屏幕上的字符,例如字母、数字、标点符号等。

控制字符_34个控制符-CSDN博客

5、isxdigit

判断是否为十六进制的数字

#include<stdio.h>
#include<string.h>
#include<cctype>//或者#include<ctype.h> 
int main()
{
	char str[3][10]={"2EFH3","37DA","ZE3C"};
	int i,j,l;
	for(i=0;i<3;i++)
	{
		l=strlen(str[i]);
		for(j=0;str[i][j]!='\0';)
		{
			if(isxdigit(str[i][j]))
			{
				j++;
			}
			else
			break;
		}
		if(j>=l)
		printf("%s是十六进制的字符串\n",str[i]);
		else
		printf("%s不是十六进制的字符串\n",str[i]);
	}
	return 0;
}

十六进制的有:0~9,a~f,A~F

6、

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值