重读gets()与is函数的用法
这是从百度百科上查找的资料:
gets():
从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。
所以用gets来输入字符串时换行符被读取(不留在缓冲区),并被系统转化为null值
所以,下图是错误的用法:

相比之下,而getchar()可以将换行符作为内容:改变一下后为
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char c;
int i = 0, j = 0, k = 0, l = 0,m=0;
printf("请输入一个长度不超过200的字符串: \n");
while ((c=getchar())!= '\n')
{
if(isalpha(c))
j++;
if(isdigit(c))
k++;
if(isspace(c))
l++;
if(ispunct(c))
m++;
}
printf("该字符串的字母个数:%d,数字个数:%d,空格个数:%d,标点个数:%d", j,k,l,m);
return 0;
}
不过从这个程序中还是有许多函数可以借鉴:
1.isalpha()
用法:头文件加入#include (C语言使用<ctype.h>)
功能:判断字符ch是否为英文字母,当ch为英文字母a-z或A-Z时,则函数返回不是1的值,否则返回0
同理:
isupper
原型:extern int isupper(int c);
头文件:<ctype.h>
功能:判断字符c是否为大写英文字母
说明:当参数c为大写英文字母(A-Z)时,返回非零值,否则返回零。
附加说明: 此为宏定义,非真正函数。
islower
islower(测试字符是否为小写字母)
2.isdigit
原型:extern int isdigit(char c);
用法:#include <ctype.h>
功能:判断字符c是否为数字
说明:当c为数字0-9时,返回非零值,否则返回零。
附加说明 此为宏定义,非真正函数。
3.isspace
表头文件
#include<ctype.h>
定义函数
int isspace(int c)
函数说明
检查参数c是否为空格字符,也就是判断是否为空格(' ')、水平定位字符
('\t')、归位键('\r')、换行('\n')、垂直定位字符('\v')或翻页('\f')的情况。[1]
返回值
若参数c为空格字符,则返回TRUE,否则返回NULL(0)。
附加说明
此为宏定义,非真正函数。
4.ispunct
表头文件
#include<ctype.h>
定义函数
int ispunct(int c)
函数说明
检查参数c是否为标点符号或特殊符号。返回TRUE也就是代表参数c为
非空格、非数字和非英文字母。
重读gets()与is函数的用法的更多相关文章
- 有关日期的函数操作用法总结,to_date(),trunc(),add_months();
相关知识链接: Oracle trunc()函数的用法 oracle add_months函数 Oracle日期格式转换,tochar(),todate() №2:取得当前日期是一个星期中的第几天,注 ...
- Oracle to_date()函数的用法
Oracle to_date()函数的用法 to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习. 在Orac ...
- js中bind、call、apply函数的用法
最近一直在用 js 写游戏服务器,我也接触 js 时间不长,大学的时候用 js 做过一个 H3C 的 web的项目,然后在腾讯实习的时候用 js 写过一些奇怪的程序,自己也用 js 写过几个的网站.但 ...
- Oracle trunc()函数的用法
Oracle trunc()函数的用法 /**************日期********************/1.select trunc(sysdate) from dual --2013-0 ...
- freemarker内置函数和用法
原文链接:http://www.iteye.com/topic/908500 在我们应用Freemarker 过程中,经常会操作例如字符串,数字,集合等,却不清楚Freemrker 有没有类似于Jav ...
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- JavaScript中常见的数组操作函数及用法
JavaScript中常见的数组操作函数及用法 昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下 ...
- JavaScript中常见的字符串操作函数及用法
JavaScript中常见的字符串操作函数及用法 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信 ...
- oracle的substr函数的用法
oracle的substr函数的用法 取得字符串中指定起始位置和长度的字符串 substr( string, start_position, [ length ] ) 如: substr( ...
随机推荐
- SQLite数据库的体系结构(翻译自sqlite.org)
$1 简介 本文档描述了SQLite库的体系结构,这些信息对那些想理解和修改SQLite的内部工作机制的人是有用的. 下图显示了SQLite的主要组成部件及其相互关系,下面的内容将描述每一 ...
- HDU2521反素数
只是了解下这种简单的数论定义,解释可以戳这个 http://www.cnblogs.com/Findxiaoxun/p/3460450.html ,然后按Ctrl+ F搜索 反素数 ,找到那一部 ...
- NC / Netcat - 文件传输
文件传输:将文件从B用户机器传输到A用户机器. 实验环境1: A用户,windows系统,IP:192.168.12.109 B用户,linux系统,IP:192.168.79.3 A用户作为接受传输 ...
- 告别无止境的增删改查:Java代码生成器
对于一个比较大的业务系统,我们总是无止境的增加,删除,修改,粘贴,复制,想想总让人产生一种抗拒的心里.那有什么办法可以在正常的开发进度下自动生成一些类,配置文件,或者接口呢? 有感于马上要做个比较 ...
- 10、JPA_映射双向多对多的关联关系
双向多对多的关联关系 双向多对多的关联关系(抽象成A-B)具体体现:A中有B的集合的引用,同时B中也有对A的集合的引用.A.B两个实体对应的数据表靠一张中间表来建立连接关系. 同时我们还知道,双向多对 ...
- Hibernate检索方式 分类: SSH框架 2015-07-10 22:10 4人阅读 评论(0) 收藏
我们在项目应用中对数据进行最多的操作就是查询,数据的查询在所有ORM框架中也占有极其重要的地位.那么,如何利用Hibernate查询数据呢?Hibernate为我们提供了多种数据查询的方式,又称为Hi ...
- MyEclipse 常用设置
1.指定本机java环境 Windows-->preferences-->java-->Insetallel JREs 右侧 单击ADD-->standard VM--> ...
- Oracle Gateways透明网关访问SQL Server
自己的本机安装了Oracle 12c,公司的平台需要同时支持Oracle与SQL Server,很多时候都有将数据从Oracle同步到SQL Server的需求.通过SQL Server的link S ...
- 转:MVC2表单验证失败后,直接返回View,已填写的内容就会清空,可以这样做;MVC2输出文本;MVC2输出PDF文件
ViewData.ModelState.AddModelError("FormValidator", message); foreach (string field in Requ ...
- codevs 1218 疫情控制
啊好烦这道题.... 基本思路网上都有. 注意的一点是在匹配的时候,如果有军队的来源没有被匹配到,那么就先匹配这个来源.(因为不花钱). 不过数据好水.... #include<iostream ...