C/C++ 字符判断函数总结

版权声明:假装这里有个版权声明…… https://blog.csdn.net/CV_Jason/article/details/86101931

前言

  在做诸如字符串处理这种类型的题目的时候,总是要涉及到字符判断这种问题,尤其是在数字与字符之间进行转换时。初学者总会自然而然的手动去实现这个功能,比如判断字符是否是一个数字——

// 判断字符是否在 0~9之间
bool isnum(const char&c){
	if(c>='0'&&c<='9') return true;
	else return false;
}

  但实际上,C语言系统库函数提供了这一功能,我们大可不必重复造轮子——

#include<ctype.h>
// 是数字返回非零值
int isdigit(int ch);

  类似的,ctype.h库函数中还提供了很多字符判断函数,我们对常用函数做一些总结。

ctype常用字符判断函数

isalnum函数

int isalnum(int ch);

检查给定字符是否为当前C语言环境下的字母数字字符,包括——

  • 数字 0123456789
  • 大写字母ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • 小写字母abcdefghijklmnopqrstuvwxyz

如果是,返回非零值,否则返回零值。

isalpha函数

int isalpha(int ch);

检查给定字符是否为当前C语言环境下的字母字符,包括——

  • 大写字母ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • 小写字母abcdefghijklmnopqrstuvwxyz

如果是,返回非零值,否则返回零值。

islower函数

int islower(int ch);

检查给定字符是否为当前C语言环境下的小写字母字符,包括——

  • 小写字母abcdefghijklmnopqrstuvwxyz

如果是,返回非零值,否则返回零值。

isupper函数

int isupper(int ch);

检查给定字符是否为当前C语言环境下的大写字母字符,包括——

  • 大写字母ABCDEFGHIJKLMNOPQRSTUVWXYZ

如果是,返回非零值,否则返回零值。

isdigit函数

int isdigit(int ch);

检查给定字符是否为当前C语言环境下的数字字符,包括——

  • 数字 0123456789

如果是,返回非零值,否则返回零值。

isxdigit函数

int isxdigit(int ch);

检查给定字符是否为当前C语言环境下的十六进制数字字符,包括——

  • 十六进制数字 0123456789abcdefABCEDF

如果是,返回非零值,否则返回零值。

isspace函数

int isspace(int ch);

检查给定字符是否为当前C语言环境下的空白字符,包括——

  • 空格(0x20)
  • 换页(0x0c)
  • 换行(0x0a)
  • 回车(0x0d)
  • 水平制表符(0x09)
  • 垂直制表符(0x0b)

如果是,返回非零值,否则返回零值。

isblank函数

int isblank(int ch);

检查给定字符是否为当前C语言环境下的空格字符,包括——

  • 空格(0x20)
  • 水平制表符(0x09)

如果是,返回非零值,否则返回零值。

ispunct函数

int ispunct(int ch);

检查给定字符是否为当前C语言环境下的标点字符,包括——

  • !"#$%&’()*+,-./:;<=>?@[]^_`{|}~

如果是,返回非零值,否则返回零值。

isprint函数

int isprint(int ch);

检查给定字符是否为当前C语言环境下的可打印字符,包括——

  • 数字 0123456789
  • 大写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • 小写字母 abcdefghijklmnopqrstuvwxyz
  • 标点 !"#$%&’()*+,-./:;<=>?@[]^_`{|}~
  • 空格

如果是,返回非零值,否则返回零值。

isgraph函数

int isgraph(int ch);

检查给定字符是否为当前C语言环境下的图形字符,包括——

  • 数字 0123456789
  • 大写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • 小写字母 abcdefghijklmnopqrstuvwxyz
  • 标点 !"#$%&’()*+,-./:;<=>?@[]^_`{|}~

如果是,返回非零值,否则返回零值。不难发现,就比isprint少了一个空格,空格确实不是一种图像(not graph)。

iscntrl函数

int iscntrl(int ch);

检查给定字符是否为当前C语言环境下的控制字符,控制字符是拥有编码 0x00-0x1F 和 0x7F 的字符。如果是,返回非零值,否则返回零值。

tolower函数

int tolower(int ch);

按照当前安装的 C 本地环境所定义的规则,转换给定字符为小写。即,以分别小写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ 替换大写字母abcdefghijklmnopqrstuvwxyz 。 如果ch不存在对应的小写版本,那么返回ch值。

toupper函数

int toupper(int ch);

按照当前安装的 C 本地环境所定义的规则,转换给定字符为大写。即,以大写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ 替换下列小写字母 abcdefghijklmnopqrstuvwxyz 。 如果ch不存在对应的大写版本,那么返回ch值。

猜你喜欢

转载自blog.csdn.net/CV_Jason/article/details/86101931