C语言的字符处理函数库

来源:互联网 发布:jre windows i586.exe 编辑:程序博客网 时间:2024/05/21 17:42

C语言的字符处理函数库提供了两类函数,一类是字符测试函数,一类是字符大小写转换函数。尽管可以使用其他方式来实现这些功能,但建议使用这些库函数,因为这些函数有以下优点:

  • 大多数由宏实现,在运行速度上进行了优化
  • 支持任何字符集,可移植性好
  • 支持程序国际化

字符测试函数

字符测试函数包括以下几个,每个测试函数都返回0或1,1表示测试成功,0表示测试失败。

函数原型 函数意义 int isalnum(int c) c是否是字母或数字 int isalpha(int c) c是否是字母 int iscntrl(int c) c是否是控制字符 int isdigit(int c) c是否是十进制数字 int isgraph(int c) c是否是可显示字符(除去空格) int islower(int c) c是否是小写字母 int isprint(int c) c是否是可显示字符(包括空格) int ispunct(int c) c是否是标点符号 int isspace(int c) c是否是空格(包括换页符、换行符、回车符、横向制表符和纵向制表符 int isupper(int c) c是否是大写字母 int isxdigit(int c) c是否是16进制数
/************************************* * using_test_function.c             * *                                   * * 测试字符串测试函数,引自C语言程序 * * 设计-一种现代方法一书             * *************************************/#include <stdio.h>#include <ctype.h>#define TEST(f) printf("  %c    ", f(*p) ? 'x' : ' ');int main(){  char *p;  printf("   alnum  alpha  cntrl  graph  print  space xdigit  digit  lower  punct  upper\n");  for(p = "azAZ0 !\t"; *p != '\0'; p++)  {    if (iscntrl(*p))      printf("\\x%02x:", *p);    else      printf(" %c ", *p);    TEST(isalnum);    TEST(isalpha);    TEST(iscntrl);    TEST(isgraph);    TEST(isprint);    TEST(isspace);    TEST(isxdigit);    TEST(isdigit);    TEST(islower);    TEST(ispunct);    TEST(isupper);    printf("\n");  }  return 0;}

测试字符测试函数

字符大小写转换函数

int tolower(int c);int toupper(int c);

tolower函数返回字母c对应的小写字母,toupper函数返回字母c对应的大写字母。

/****************************************** * using_lower_upper_transfer.c           * *                                        * * C语言中大小写转换函数测试,摘自C语言程 * * 序设计-一种现代方法一书                * ******************************************/#include <stdio.h>#include <ctype.h>int main(){  char *p;  for (p = "aA0!"; *p != '\0'; p++)  {    printf("tolower('%c') is '%c'", *p, tolower(*p));    printf("toupper('%c'') is '%c'\n", *p, toupper(*p));  }  return 0;}

测试大小写转换函数

参考文献

  1. K.N. King 著,吕秀峰 译. C语言程序设计-现代方法. 人民邮电出版社
0 0
原创粉丝点击