单片机C语言-(C51.)地普通库函数.doc
《单片机C语言-(C51.)地普通库函数.doc》由会员分享,可在线阅读,更多相关《单片机C语言-(C51.)地普通库函数.doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 C51C51 的常用库函数详解的常用库函数详解 C51 语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计 的工作量,提高编程效率。每个库函数都在相应的头文件中给出了函数原型声明,在使 用时,必须在源程序的开始处使用预处理命令#include 将有关的头文件包含进来。 C51 库函数中类型的选择考虑到了 8051 单片机的结构特性,用户在自己的应用程序 中应尽可能地使用最小的数据类型,以最大限度地发挥 8051 单片机的性能,同时可减 少应用程序的代码长度。下面将 C51 的库函数分类列出并详细介绍其用法。 1 1 字符函数字符函数 字符函数的原型声明包含在头文件 CTYP
2、E.H 中。常用的一些字符函数介绍如下。 1.1 检查英文字母函数 检查英文字母函数用于检查形参字符是否为英文字母,其函数原型如下: bit isalpha(char c); 其中,c 为待判断的字符,如果是英文字母则返回 1,否则返回 0。程序示例如下:1.2 检查字母数字函数 检查字母数字函数用于检查形参字符是否为英文字母或数字字符,其函数原型如下: bit isalnum(char c);1.3 检查控制字符函数 检查控制字符函数用于检查形参字符是否为控制字符,其函数原型:bit iscntrl (char c);其中,c 为待判断的字符。控制字符其取值范围为 0x000xlF 之间或等
3、于 0x7F,如果是,则返回 1,否则返回 0。1.4 十进制数字检查函数 十进制数字检查函数用于检查形参字符是否为十进制数字,其函数原型如下: bit isdigit (char c); 其中,c 为待判断的字符,如果是十进制数字则返回 1,否则返回 0。1.5 可打印字符检查函数 可打印字符检查函数用于检查形参字符是否为可打印字符,其函数原型如下: bit isgraph (char c); 其中,c 为待判断的字符。可打印字符的取值范围为 0x210x7C,不包含空格,如 果是可打印字符则返回 1,否则返回 0。1.6 包含空格的可打印字符检查函数 包含空格的可打印字符检查函数用于检查形
4、参字符是否为可打印字符以及空格,其 函数原型如下: bit isprint (char c); 其中,c 为待判断字符。如果是则返回 1,否则返回 0。该函数与 isgraph 的区别在 于包含了空格符,空格符为 0x20。1.7 格式字符检查函数 格式字符检查函数用于检查形参字符是否为标点、空格或格式字符,其函数原型如 下: bit ispunct (char c); 其中,c 为待判断字符,如果是则返回 1,否则返回 0。1.8 小写英文字母检查函数 小写英文字母检查函数用于检查形参字符是否为小写英文字母,其函数原型如下: bit islower(char c); 其中,c 为待判断字符。
5、如果是小写英文字母则返回 1,否则返回 0。1.9 大写英文字母检查函数 大写英文字母检查函数用于检查形参字符是否为大写英文字母,其函数原型如下: bit isupper(char c); 其中,c 为待判断字符。如果是大写英文字母则返回 1,否则返回 0。 1.10 控制字符检查函数 控制字符检查函数用于检查形参字符是否为控制字符,其函数原型如下: bit isspace (char c); 其中,c 为待判断字符。如果是控制字符则返回 1,否则返回 0。控制字符包括:空 格、制表符、回车、换行、垂直制表符和送纸,其取值范围为 0x090x0d,或为 0x20。 1.11 十六进制数字检查函
6、数 十六进制数字检查函数用于检查形参字符是否为十六进制数字,其函数原型如下: bit isxdigit (char c); 其中,c 为待判断字符。如果是 16 进制数字字符则返回 1,否则返回 0。 1.12 十六进制数字转换函数 十六进制数字检查函数用于转换形参字符为十六进制数字,其函数原型如下: char toint (char c); 其中,c 为待转换字符。该函数将形参字符 09、af(大小写无关)转换为 16 进 制数字。其中,对于字符 09,返回值为 0H9H,对于 ASCII 字符 af(大小写无关) ,返回值为 0AH0FH。 1.13 大写字符转换函数 大写字符转换函数用于
7、将大写字符转换为小写字符,其函数原型如下: char tolower (char c); 其中,c 为待转换的大写字符。如果字符参数不在 AZ 之间,则该函数将不起作用, 而直接返回原字符。 1.14 小写字符转换函数 小写字符转换函数用于将小写字符转换为大写字符,其函数原型如下: char toupper (char c); 其中,c 为待转换的小写字符。如果字符参数不在 az 之间,则该函数将不起作用, 而直接返回原字符。 1.15 ASCII 字符转换函数 ASCII 字符转换函数用于将任何字符型参数缩小到有效的 ASCII 范围之内,其函数 原型如下: char toascii (ch
8、ar c); 其中,c 为待转换的字符。该函数执行的操作是将形参数值和 0x7f 做与运算,从而 去掉第 7 位以上的所有位数。如果形参已是有效的 ASCII 字符,则不作处理,直接返回 原字符。 1.16 大写字符宏转换函数 大写字符宏转换函数用于大写字符转换为小写字符,其函数原型如下: char _tolower(char c); 其中,c 为待转换的大写字符。这其实是一个由宏定义完成的操作,其功能是将字 符参数 c 与常数 0x20 逐位进行或运算,从而将大写字符转换为小写字符。 1.17 小写字符宏转换函数 小写字符宏转换函数用于小写字符转换为大写字符,其函数原型如下: char _t
9、oupper (char c); 其中,c 为待转换的小写字符。这其实是一个由宏定义完成的操作,其功能是将字 符参数 c 与常数 0xdf 逐位进行与运算,从而将小写字符转换为大写字符。 2 2 字符串函数字符串函数 字符串函数的原型声明包含在头文件 STRING.H 中。在 C51 语言中,字符串应包括 2 个或多个字符,字符串的结尾以空字符来表示。字符串函数通过接受指针串来对字符 串进行处理。常用的字符串函数介绍如下。 2.1 字符查找函数 字符查找函数用于在字符串中顺序查找字符,其函数原型如下: void *memchr(void*sl,char val,int len); 其中,s1
10、为输入字符串,val 为待查找的字符,len 为查找的长度范围。该函数的功 能是在字符串 s1 中顺序搜索前 len 个字符以找出字符 val,如果找到则返回 sl 中指向 val 的指针,如果没有找到则返回 NULL。 2.2 指定长度的字符串比较函数 指定长度的字符串比较函数用于按照指定的长度比较两个字符串的大小,其函数原 型如下: char memcmp(void*s1, void*s2,int len); 其中,s1 和 s2 为输入字符串,len 为比较的长度。该函数的功能是逐个比较字符串 sl 和 s2 的前 len 个字符,如果相等则返回 0,如果字符串 s1 大于 s2,则返回
11、一个正数, 如果字符串 s1 小于 s2,则返回一个负数。如果两个字符串的长度小于 len,该函数仍将 一直比较 len 个字符,这种情况下,有可能结果是错误的。因此应该保证 len 不能超过 最短字符串的长度。 2.3 字符串复制函数 字符串复制函数用于复制指定长度的字符串,其函数原型如下: void*memcpy(void*dest,void*src,int len); 其中,dest 为目标字符串,src 为源字符串,len 为复制的长度。该函数的功能是从 src 所指向的字符串中复制 len 个字符到 dest 字符串中,其返回值指向 dest 中的最后一 个字符的指针。 2.4 带终
12、止字符的字符串复制函数 带终止字符的字符串复制函数用于复制字符串,如果遇到终止字符则停止复制,其 函数原型如下: void*memccpy(void*dest, void*src,char val,int len); 其中,dest 为目标字符串,src 为源字符串,val 为终止字符,len 为复制的长度。该 函数的功能是复制字符串 src 中的 len 个字符到 dest 中,复制 len 个字符后则返回 NULL。如果遇到字符 val 则停止复制,此时返回一个指向 dest 中的下一个元素的指针。2.5 字符串移动函数 字符串移动函数同样用于复制字符串,其函数原型如下: void *me
13、mmove(void*dest,void*src,int len); 其中,dest 为目标字符串,src 为源字符串,len 为复制长度。该函数的功能是从 src 所指向的字符串中复制 len 个字符到 dest 字符串中,其返回值指向 dest 中的最后一个字 符的指针。其功能与 memcpy 相同,但是复制区间 src 与 dest 可以发生交迭。 2.6 字符串填充函数 字符串填充函数用于按规定的字符填充字符串,其函数原型如下: void*memset(void*s,char val,int len); 其中,s 为待填充的字符串,val 为填充字符,len 为填充的长度。该函数实现的
14、操作 是用字符 val 来填充字符串 s,共填充 len 个单元 2.7 字符串追加函数 字符串追加函数用于复制字符串到另一个字符串的尾部,其函数原型如下: void *strcat(char *s1,char *s2); 其中,s1 为目标字符串,s2 为待复制的字符串。该函数实现的操作是将字符串 s2 复制到字符串 s1 的尾部。其中字符串 s1 要有足够的大小来保存两个字符串。该函数的 返回值指向字符串 s1 中的第一个字符的指针。 2.8 指定长度的字符串追加函数 指定长度的字符串追加函数用于复制指定长度的字符串到另一个字符串的尾部,其 函数原型如下: void*strncat(,ch
15、ar *s1,char *s2,int n); 其中,s1 为目标字符串,s2 为待复制的字符串,n 为复制的长度。该函数实现的操 作是从字符串 s2 中复制 n 个字符添加到字符串 s1 的尾部。其中,如果字符串 s2 的长度 比 n 小,则将全部复制字符串 s2(包括串结束符) 。 2.9 字符串比较函数 字符串比较函数用于比较两个字符串的大小,其函数原型如下: char strcmp(char *s1,char *s2); 其中,s1 和 s2 为待比较的字符串。该函数的功能是比较字符串 s1 和 s2,如果两者 相等则返回 0;如果 s1s2,则返回一个正数。 2.10 包含结束符的字
16、符串比较函数 包含结束符的字符串比较函数用于比较两个字符串的大小,其函数原型如下: char*strncmp(char *s1,char *s2,int n); 其中,s1 和 s2 为待比较的字符串,n 为比较的长度。该函数的功能是比较字符串 s1 和 s2 的前 n 个字符,如果两者相等则返回 0;如果 s1s2,则返回一个正数。这里需要和 memcmp 函数相区别,如果字符串的长度小于 n, 则 strncmp 函数比较到字符串结束符后便停止,这和 memcmp 函数是不一样的。 2.11 字符串覆盖函数 字符串覆盖函数用于将一个字符串覆盖另一个字符串,其函数原型如下: char* st
17、rcpy(char *s1,char *s2); 其中,s1 为目标字符串,s2 为源字符串。该函数的功能是将字符串 s2(包括结束符) 复制到字符串 s1 中的第 1 个字符指针处。这里需要注意和 strcat 函数相区别,strcat 函 数将字符串 s2 复制到字符串 s1 的末尾。 2.12 指定长度的字符串覆盖函数 指定长度的字符串覆盖函数用于将一个指定长度的字符串覆盖另一个字符串,其函 数原型如下: char*strncpy(char *s1,char *s2,int n); 其中,s1 为目标字符串,s2 为源字符串,n 为长度。该函数实现的操作是从字符串 s2(包括结束符)中复
18、制 n 个字符到字符串 s1 中的第 1 个字符指针处。如果字符串 s2 的长度小于 n,则 s1 串以 0 补齐到长度 n。 2.13 获取字符串个数函数 获取字符串个数函数用于返回字符串中字符总数,其函数原型如下: char*strlen(char *s1); 其中,s1 为输入字符串。该函数的功能是获取字符串 s1 中的字符个数,返回值的大 小不包括结尾的字符串结束符。 2.14 搜索字符串函数 搜索字符串函数用于搜索字符串出现的位置,其函数原型如下: char*strstr(const char *s1,char*s2); 其中,s1 为目标字符串,s2 为搜索的字符串。该函数实现的操
19、作是在字符串 s1 中 搜索第一次出现字符串 s2 的位置,并返回该处的指针。如果字符串 s1 中不包括字符串 s2,则该函数返回一个空指针。 2.15 搜索字符函数 搜索字符函数用于搜索字符出现的位置,其函数原型如下: char*strchr(char *s1,char c); 其中,s1 为目标字符串,c 为待搜索的字符。该函数的功能是搜索字符串 s1 中是否 包含字符 c,如果包含则返回第一次指向该字符的指针,否则返回 NULL。被搜索的字 符可以是串结束符,此时返回值是指向串结束符的指针。 2.16 返回位置值的字符搜索函数 返回位置值的字符搜索函数用于搜索并返回字符出现的位置,其函数
20、原型如下: int strpos(char*s1,char c); 其中,s1 为目标字符串,c 为搜索的字符。该函数的功能是查找并返回字符 c 在字 符串 s1 中第一次出现的位置值,没有找到该字符则返回-1,s1 串首字符的位置值是 0。strpos 函数的功能与 strchr 类似,只不过返回值不同。 2.17 字符包含函数 字符包含函数用于检查字符串中是否包含某字符,其函数原型如下: char*strrchr(char *s1,char c); 其中,s1 为目标字符串,c 为查找的字符。该函数的功能是搜索字符串 s1 中是否包 含字符 c,如果包含则返回最后一次指向该字符的指针,否则
21、返回 NULL。被搜索的字 符可以是串结束符,此时返回值是指向串结束符的指针。 2.18 返回位置值的字符包含函数 返回位置值的字符包含函数同样用于检查字符串中是否包含某字符,其函数原型如 下: int strrpos(char*s1,char c); 其中,s1 为目标字符串,c 为查找的字符。该函数的功能是查找并返回字符 c 在字 符串 s1 中最后一次出现的位置值,没有找到该字符则返回-1,s1 串首字符的位置值是 0。strrpos 函数的功能与 strrchr 类似,只不过返回值不同。 2.19 在指定字符集中查找不包含字符函数 在指定字符集中查找不包含字符函数用于查找不包含在指定字
22、符集中的字符,其函 数原型如下: int strspn(char*s1,char*set); 其中,s1 为目标字符串,set 为字符集。该函数的功能是搜索字符串 s1 中第一个不 包含在 set 串中的字符,返回值是字符串 s1 中包括在 set 中的字符的个数。如果 s1 中所 有的字符都包含在 set 中,则返回 s1 的长度(不包括结束符) 。如果 set 是空字符串则返 回 0。 2.20 在指定字符集中查找包含字符函数 在指定字符集中查找包含字符函数用于查找包含在指定字符集中的字符,其函数原 型如下: int strcspn(char*s1,char*set); 其中,s1 为目标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 语言 C51 普通 库函数
限制150内