demo4:调用C语言库函数计算输入字符个数

调用C语言ctype.h库里的函数分别计算输入的控制字符、十进制数字字符、大写字母和小写字母。

1.输入一行以'\n'代表输入结束

代码如下:

#include<stdio.h>
#include<ctype.h> 字符统计函数所在库头文件
//1.输入一行以'\n'代表输入结束
int main(){
	char ch='#';
	int consum=0,digsum=0,capsum=0,smasum=0,othsum=0;
	while(ch=getchar(),ch!='\n'){
		if(iscntrl(ch)) //控制字符输入一个tab测试 
			consum++;
		else if(isdigit(ch))
			digsum++;
		else if(isupper(ch)) 
			capsum++;
		else if(islower(ch))
			smasum++;
		else othsum++;
	}
	printf("consum=%d\n",consum);
	printf("digsum=%d\n",digsum);
	printf("capsum=%d\n",capsum);
	printf("smasum=%d\n",smasum);
	printf("othsum=%d\n",othsum);
	return 0;
} 

ps:while()循环条件语句使用了逗号运算符。(语句1,语句2,语句3)从左到右语句1,语句2,语句3依次执行,但该表达式最终结果为语句3的值。  控制字符用输入tab键测试。

运行结果如下:

2.输入多行使用"EOF"指令作为输入结束

代码如下(大体没有变动):

#include<stdio.h>
#include<ctype.h> 字符统计函数所在库头文件
//2.输入多行使用"EOF"指令作为输入结束
int main(){
	char ch='#';//初始化,也可以写为:char ch='\0'; 
	int consum=0,digsum=0,capsum=0,smasum=0,othsum=0;
	while(ch=getchar(),ch!=EOF){            
		if(iscntrl(ch)) //控制字符输入一个tab测试 
			consum++;
		else if(isdigit(ch))
			digsum++;
		else if(isupper(ch)) 
			capsum++;
		else if(islower(ch))
			smasum++;
		else othsum++;
	}
	printf("consum=%d\n",consum);
	printf("digsum=%d\n",digsum);
	printf("capsum=%d\n",capsum);
	printf("smasum=%d\n",smasum);
	printf("othsum=%d\n",othsum);
	return 0;
} 

运行结果如下:

 

 注意:若使用“EOF”指令输入多行作为结束:1.输入多行意味着用键盘输入多个回车即换行符(控制字符'\n'),控制字符会计数!;2.tab键依然可以用来测试控制字符;3.“EOF”输入结束操作:另起一行输入“ctrl+z”,再输入回车即可(最后输入的回车不计入控制字符),准确说另起一行敲ctrl+z+回车是一个整体。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值