c标准库

原创 2011年01月13日 16:07:00

C语言专题——标准库<ctype.h>
1 字符测试函数

1> 函数原型均为int isxxxx(int)
2> 参数为int, 任何实参均被提升成整型
3> 只能正确处理处于[0, 127]之间的值

isalpha  'A'~'Z', 'a'~'z'
isdigit  '0'~'9'
isxdigit '0'~'9', 'A'~'F', 'a'~'f'
isalnum  isalpha || isdigit

islower  'a'~'z'
isupper  'A'~'Z'

isspace
9  '/t'  (tab: 水平制表位)
10 '/n'  (line feed: 换行)
11 '/v'  (home: 垂直制表位)
12 '/f'  (form feed: 换页)
13 '/r'  (carriage return: 回车)
32  ' '  (space: 空格)

isgraph  33~126
isprint  isgraph || ' '
ispunct  isgraph && !isalnum
 
iscntrl  0~31, 127
 
2 字符映射函数

1> 函数原型为int toxxxx(int)
2> 对参数进行检测, 若符合范围则转换, 否则不变

int tolower(int); 'A'~'Z' ==> 'a'~'z'
int toupper(int); 'a'~'z' ==> 'A'~'Z'
 
3 附测试代码

#include <stdio.h>
#include <ctype.h>

char (* isxx_name[]) =
{
 "isalpha",
 "isdigit",
 "isxdigit",
 "isalnum",

 "islower",
 "isupper",

 "isspace",

 "isgraph",
 "isprint",
 "ispunct",
 
 "iscntrl"
};

int (* isxx_list[])(int) =
{
 isalpha,
 isdigit,
 isxdigit,
 isalnum,
 
 islower,
 isupper,
 
 isspace,
 
 isgraph,
 isprint,
 ispunct,
 
 iscntrl
};

int main()
{
 int i, k;
 
 for (i=0; i<sizeof(isxx_list)/sizeof(isxx_list[0]); i++)
 {
  printf("Testing %s/n", isxx_name[i]);
  for (k=0; k<128; k++)
   if (isxx_list[i](k))
    printf("%3d %c/n", k, k);
  printf("/n");
 }
 
 return 0;
}

source: 《C & C++ Code Capsules》

相关文章推荐

[C/C++标准库]_[初级]_[使用模板删除字符串前后空格((w)string space)]

1. C++没有提供删除std::(w)string的前后空格的函数,比如TrimSpace. 2. 很多库都提供, 但是为了移植代码方便,最好还是能用标准库解决就用标准库....

[C_9] IO & 标准库

15 IO 15.1 字符IO getchar/putchar //从屏幕 输入输出一个字符 fgetc/fputc getc/putc(有的编译器可能是宏) //从文件输出输入 getchar();...

C标准库学习--错误处理

错误处理 Error Reporting 头文件 errno.h volatile int errno; 当函数调用出现错误时,这个值会被设置成对应的错误码,可以根据错误码判断具体出现什么错误...

C 标准库 error.h

对于编程序来讲,我们需要十分注意错误的返回,所以我想要谢谢我对于error.h的理解。           对于早期的unix程序采用的“其他地方”,是一个具有外部链接的数据对象。任何失败的系统调用...

C /C++标准库 - <cerrno> (errno.h)

1. 概述errno中定义了几个宏,其和错误状态的报告有关2. Macroerrno:errno 是记录系统的最后一次错误代码,代码是一个int型的值。 注意:只有当一个库函数失败时,errno才会...

[转]C标准库中的setjmp与longjmp

在C标准库中有一对非常有趣的函数setjmp()函数与longjmp()函数,用来实现代替goto实现一些非常重要的功能,如异常处理。C语言中,标准库函数setjmp和longjmp形成了结构化异常工...
  • arriod
  • arriod
  • 2012年09月06日 08:05
  • 902

C 标准库获取当前系统时间

尽量用C标准库、不用系统API 首先包含头文件 #include 返回一个string吧 string getCurrentTime() { time_t t=time(0); ...

C标准库I/O缓冲区和用户程序的缓冲区

1.C标准库的I/O缓冲区         UNIX的传统 是Everything is a file,键盘、显示器、串口、磁盘等设备在/dev 目录下都有一个特殊的设备文件与之对应,这些设备文件也...

[C/C++标准库]_[初级]_[获取文件的所在目录跨平台实现]

场景: 1. 获取文件所在目录便于打开文件所在目录。 2. 需要统计所在目录的文件个数。 3. 需要复制一个备份。 参考: libxml2的xmlParserGetDirectory函数.基本完全...

C /C++标准库 - <cstdlib>(stdlib.h)

stdlib.hstandard library标准库头文件,是一个大杂烩,定义和声明一些没有明显的归属的宏和函数。1. Types 序号 Types 描述 1 div_t St...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c标准库
举报原因:
原因补充:

(最多只允许输入30个字)