C语言中有许多关于字符,字符串和内存操作的库函数,例如:isspace(),tolower(),strcpy(),memcpy()等等。接下来进行一一说明。
一.字符函数
1.字符分类函数:
字符分类函数包含在<ctype.h>这个头文件中,如果满足条件就返回非零的数,如果不满足则返回零。
字符分类函数的使用非常相似,举islower()的例子,其他函数与其相同:
2.字符转换函数:tolower和toupper
tolower()会将大写转成小写,若已是小写则不转换。toupper()会将小写转成大写,若已是大写则不转换。如下例:
二.字符串函数
1.strcpy和strncpy 这两个函数是用来将源中的字符串拷贝到目的地中的,并返回目的地起始地址,strncpy在拷贝个数少于源中字符串长度时,不会在拷贝内容后加'\0',当长度长于源中字符串长度时,多余位会用'\0'补充。就不再做代码演示,具体说明参考后面的链接: strcpy - C++ Reference (cplusplus.com) strncpy - C++ Reference (cplusplus.com),现在模拟实现上面的两个函数:
两函数相比后者会更安全,可以在一定程度上避免越界。
2.strcat和strncat这两函数是将源中的字符串连接到目的地字符串上,并返回目的地起始地址。strncat在连接个数少于源中字符串长度时会在链接内容后补'\0',在连接个数多于源中字符串长度时多余位不会补零。要与strncpy区分开。 就不再做代码演示,具体操作看后面的链接:strcat - C++ Reference (cplusplus.com) strncat - C++ Reference (cplusplus.com),现在模拟实现上面两个函数:
3.strcmp和strncmp这两个函数是比较相应字符ASCII值的大小,大于返回大于零的数,小于返回小于零的数,等于则返回零。具体操作如下:strcmp - C++ Reference (cplusplus.com) strncmp - C++ Reference (cplusplus.com)模拟实现一下:
4.strstr是从一个字符串中查找另一个字符串,找得到则返回第一次出现的地址,找不到则返回NULLstrstr - C++ Reference (cplusplus.com)下面列出一种未用算法的模拟实现方式:(暴力查找)
5.strtok是将带有分隔符的字符串分为字符段,该函数在使用时需要给他传字符串起始地址和分隔符组成的字符串起始地址,它会将分隔符换为'\0'并记住其位置并返回字符段起始地址,因记住了'\0'的位置,所以下次再调用时第一个参数传NULL即可。strtok - C++ Reference (cplusplus.com)如下例:
6.strerror对该函数传错误码,其返回错误信息的起始地址,该函数使用较少,理解如何使用即可strerror - C++ Reference (cplusplus.com)与其相关的函数有一个perror,其可直接打印错误信息,有兴趣可以通过连接了解一下。perror - C++ Reference (cplusplus.com)
今天要讲的东西就讲完了,有什么不足欢迎大家指出。