Unix/Linux环境C编程入门教程(25) C/C++字符测试那些事儿
- isalnum isalpha isascii iscntrl isdigit isgraph isislower isprint isspace ispunct isupper isxdigit介绍
首先这些全部是宏,只不过我们初学者和使用者可以直接把他当作函数用。
|
|
|
|
isalnum(测试字符是否为英文或数字) |
|
|
相关函数 |
isalpha,isdigit,islower,isupper |
|
表头文件 |
#include<ctype.h> |
|
定义函数 |
int isalnum (int c) |
|
函数说明 |
检查参数c是否为英文字母或阿拉伯数字,在标准c中相当于使用"isalpha(c) || isdigit(c)"做测试。 |
|
返回值 |
若参数c为字母或数字,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
/* 找出str 字符串中为英文字母或数字的字符*/ |
|
执行 |
1 is an apphabetic character |
|
|
|
|
isalpha (测试字符是否为英文字母) |
|
|
相关函数 |
isalnum,islower,isupper |
|
表头文件 |
#include<ctype.h> |
|
定义函数 |
int isalpha (int c) |
|
函数说明 |
检查参数c是否为英文字母,在标准c中相当于使用"isupper(c)||islower(c)"做测试。 |
|
返回值 |
若参数c为英文字母,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
/* 找出str 字符串中为英文字母的字符*/ |
|
执行 |
c is an apphabetic character |
|
|
|
|
isascii(测试字符是否为ASCII 码字符) |
|
|
相关函数 |
iscntrl |
|
表头文件 |
#include <ctype.h> |
|
定义函数 |
int isascii(int c); |
|
函数说明 |
检查参数c是否为ASCII码字符,也就是判断c的范围是否在0到127之间。 |
|
返回值 |
若参数c为ASCII码字符,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
/* 判断int i是否具有对映的ASCII码字符*/ |
|
执行 |
125 is an ascii character:} |
|
|
|
|
iscntrl(测试字符是否为ASCII 码的控制字符) |
|
|
相关函数 |
isascii |
|
表头文件 |
#include <ctype.h> |
|
定义函数 |
int iscntrl(int c); |
|
函数说明 |
检查参数c是否为ASCII控制码,也就是判断c的范围是否在0到30之间。 |
|
返回值 |
若参数c为ASCII控制码,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
|
|
|
isdigit(测试字符是否为阿拉伯数字) |
|
|
相关函数 |
isxdigit |
|
表头文件 |
#include<ctype.h> |
|
定义函数 |
int isdigit(int c) |
|
函数说明 |
检查参数c是否为阿拉伯数字0到9。 |
|
返回值 |
若参数c为阿拉伯数字,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
/* 找出str字符串中为阿拉伯数字的字符*/ |
|
执行 |
1 is an digit character |
|
|
|
|
isgraphis(测试字符是否为可打印字符) |
|
|
相关函数 |
isprint |
|
表头文件 |
#include <ctype.h> |
|
定义函数 |
int isgraph (int c) |
|
函数说明 |
检查参数c是否为可打印字符,若c所对映的ASCII码可打印,且非空格字符则返回TRUE。 |
|
返回值 |
若参数c为可打印字符,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
/* 判断str字符串中哪些为可打印字符*/ |
|
执行 |
str[0] is printable character:a |
|
|
|
|
islower(测试字符是否为小写字母) |
|
|
相关函数 |
isalpha,isupper |
|
表头文件 |
#include<ctype.h> |
|
定义函数 |
int islower(int c) |
|
函数说明 |
检查参数c是否为小写英文字母。 |
|
返回值 |
若参数c为小写英文字母,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
#include<ctype.h> |
|
执行 |
c is a lower-case character |
|
|
|
|
isprint(测试字符是(否为可打印字符) |
|
|
相关函数 |
isgraph |
|
表头文件 |
#include<ctype.h> |
|
定义函数 |
int isprint(int c); |
|
函数说明 |
检查参数c是否为可打印字符,若c所对映的ASCII码可打印,其中包含空格字符,则返回TRUE。 |
|
返回值 |
若参数c为可打印字符,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
/* 判断str字符串中哪些为可打印字符包含空格字符*/ |
|
执行 |
str[0] is printable character:a |
|
|
|
|
isspace(测试字符是否为空格字符) |
|
|
相关函数 |
isgraph |
|
表头文件 |
#include<ctype.h> |
|
定义函数 |
int isspace(int c) |
|
函数说明 |
检查参数c是否为空格字符,也就是判断是否为空格('')、定位字符('\t')、CR('\r')、换行('\n')、垂直定位字符('\v')或翻页('\f')的情况。 |
|
返回值 |
若参数c为空格字符,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
/*将字符串str[]中内含的空格字符找出,并显示空格字符的ASCII码*/ |
|
执行 |
str[4] is a white-space character:32 |
|
|
|
|
ispunct(测试字符是否为标点符号或特殊符号) |
|
|
相关函数 |
isspace,isdigit,isalpha |
|
表头文件 |
#inlude<ctype.h> |
|
定义函数 |
int ispunct(int c) |
|
函数说明 |
检查参数c是否为标点符号或特殊符号。返回TRUE也就是代表参数c为非空格、非数字和非英文字母。 |
|
返回值 |
v若参数c为标点符号或特殊符号,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
/*列出字符串str中的标点符号或特殊符号*/ |
|
执行 |
v |
|
|
|
|
isupper(测试字符是否为大写英文字母) |
|
|
相关函数 |
isalpha,islower |
|
表头文件 |
#include<ctype.h> |
|
定义函数 |
int isupper(int c) |
|
函数说明 |
检查参数c是否为大写英文字母。 |
|
返回值 |
若参数c为大写英文字母,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
/*找出字符串str中为大写英文字母的字符*/ |
|
执行 |
F is an uppercase character |
|
|
|
|
isxdigit(测试字符是否为16进制数字) |
|
|
相关函数 |
isalnum,isdigit |
|
表头文件 |
#include<ctype.h> |
|
定义函数 |
int isxdigit (int c) |
|
函数说明 |
检查参数c是否为16进制数字,只要c为下列其中一个情况则返回TRUE。16进制数字:0123456789ABCDEF。 |
|
返回值 |
若参数c为16进制数字,则返回TRUE,否则返回NULL(0)。 |
|
附加说明 |
此为宏定义,非真正函数。 |
|
范例 |
/*找出字符串str中为十六进制数字的字符*/ |
|
执行 |
1 is a hexadecimal digits |
|
|
2.小试牛刀:文档统计器的实现实现主要也是利用本文介绍的函数isalnum(),isalpha(),isdigit(),islower(),isupper()由于可能很多同学还没有接触过C语言文件IO的函数,所以我们使用字符串输入模拟从文本中读取。
#include <stdio.h> //gets(),printf()
#include <ctype.h>
/*isalnum(),isalpha(),isdigit(),islower(),isupper()*/
int main()
{
char buffer[1024]; //变量定义
int i = 0; //每一个类型的计数器
int iNum = 0;
int iLower = 0;
int iSupper = 0;
int iSpace = 0;
printf("please input string:"); gets(buffer); while(i <1024 && buffer[i] !='\0') //循环终止条件
{
if(isalnum(buffer[i]))
{
++iNum;
}
if(isspace(buffer[i]))
{
++iSpace;
}
if(islower(buffer[i]))
{
++iLower;
}
if(isupper(buffer[i]))
{
++iSupper;
printf("%c is supperchar \n",buffer[i]);
}
++i;
}
printf("char+number %d\nspace %d\nlowerchar %d\nsupperchar %d\n",
iNum,iSpace,iLower,iSupper);
return 0;
}
3. 各个函数在Unix/Linux平台的效果
在RHEL6上
在RHEL7上
在Solaris上
在MAC上
各个平台效果展示完毕。
对于字符的测试我们上述这些貌似函数的宏一般足以胜任,但是往往还有一些特殊要求的需求你自己做一些修改。
Unix/Linux环境C编程入门教程(25) C/C++字符测试那些事儿的更多相关文章
- Unix/Linux环境C编程入门教程(32) 环境变量那些事儿
1. getenv() putenv()setenv()函数介绍 getenv(取得环境变量内容) 相关函数 putenv,setenv,unsetenv 表头文件 #include<stdli ...
- Unix/Linux环境C编程入门教程(19)Red Hat Entetprise Linux 7.0环境搭建
位架构,包括英特尔X-86_64.Power和s390.动态定时能力将降低内核内部中断数量,Open vSwitch 2.0功能可调节虚拟机之间的流量.RHEL 7中默认的文件系统是XFS,包含了一个 ...
- Unix/Linux环境C编程入门教程(5) Red Hat Enterprise Linux(RHEL)环境搭建
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 通过./a.out ./Y.out执行出结果,证明C++程序编译成功,也就说明li ...
- Unix/Linux环境C编程入门教程(4) Debian Linux环境搭建
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 1.广义的Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Deb ...
- Unix/Linux环境C编程入门教程(3) Oracle Linux 环境搭建
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 2010年9月,Oracle Enterprise Linux发布新版内核--Un ...
- Unix/Linux环境C编程入门教程(2) CentOS环境搭建
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 本文就带大家来安装CentOS并且配置好C/C++开发环境,这是一款Linux. ...
- Unix/Linux环境C编程入门教程(1) Solaris 11 64bit环境搭建
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 本文就带大家来安装Solaris 11 64位并且配置好C/C++开发环境 本文所 ...
- Unix/Linux环境C编程入门教程(22) C/C++如何获取程序的运行时间
1.问:知道程序运行时间我们可以做什么? 在<C++应用程序性能优化>一书中,如果大家读过相信大家一定对性能优化这一块非常上心,文中总是对优化前后的时间对比非常直观给我们一个感受. 那么我 ...
- Unix/Linux环境C编程入门教程(21) 各个系统HelloWorld跑起来效果如何?
Unix/Linux家族人员众多,我们无法一一讲解如何配置环境. 本文选定我们在前面安装的RHEL6 RHEL7 MAC10.9.3 Solaris11如何跑起来helloworld RHEL 6 上 ...
随机推荐
- TEA加密
TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,支持128位密码,与BlowFish一样TEA每次只能加密/解密8字节数据.TEA特点是速度快.效率高,实现也 ...
- Qt之HTTP上传/下载(继承QNetworkAccessManager,包括使用了authenticationRequired认证信号)
效果 QNetworkAccessManager DownloadNetworkManager::DownloadNetworkManager(QObject *parent) : QNetworkA ...
- SQL Serverf 索引 - 索引压缩 、附加特性 <第十篇>
一.索引压缩 数据和索引压缩在SQL Server2008被引入.压缩一个索引意味着将在一个页面中获得更多的关键字信息.这可以造成重大的性能改进,因为存储索引需要的页面和索引级别更少.因为索引中的键值 ...
- UESTC_秋实大哥打游戏 2015 UESTC Training for Data Structures<Problem H>
H - 秋实大哥打游戏 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Subm ...
- 【HDU 2586 How far away?】LCA问题 Tarjan算法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意:给出一棵n个节点的无根树,每条边有各自的权值.给出m个查询,对于每条查询返回节点u到v的最 ...
- linux 安装gcc和g++
linux中安装gcc和g++ 今天在linux的服务器上安装C/C++的编译器gcc和g++,运行了如下两条命令: 1 yum install gcc yum install g++ 然后发现gcc ...
- struts.xml配置文件标签详解
1.package: 作用:分模块化开发. 属性: name:包名. extends:由于struts2框架的一些核心功能的配置都在struts-default包中,所以一般都都直接或间接地继承str ...
- mime大全收集
{"ai", "application/postscript"}, {"aif", "audio/x-aiff" ...
- c保存lua函数
使用下面方式可保存lua任何值,目前只实现fucntion的保存,且无参数.如果需要实现参数,可自己扩展: 可实现下面方式: CFun( lua_fun ) -- okCFun( function() ...
- UGUI实现的虚拟摇杆,可改变摇杆位置
实现方式主要参考这篇文章:http://www.cnblogs.com/plateFace/p/4687896.html. 主要代码如下: using UnityEngine; using Syste ...