1、长度不受限制的字符串函数
长度不受限制的字符串函数,如strcmp、strcpy、strcat这类的函数,都是以'\0'作为结束的标志,所以是存在一定的使用隐患的,程序员如果编写程序不当,往往会出现越界访问的情况。
所以,为了相对更加安全的使用,我们引入长度受限制的字符串函数。
2、长度受限制的字符串函数
长度受限制的字符串函数,如strncmp、strncpy、strncat这类的函数,使用的方法与效果与长度不受限制的字符串函数类似,只不过多一个限制长度的参数——要操作的字节数。
A、strncmp
来看一看下面这段代码:
比较str1和str2两个字符串,使用strncmp进行比较,规定比较3个字节,即比较到第3位,故最终的输出的结果应为0。
B、strncpy
来看下面这段代码:
此处使用strncpy函数进行拷贝,规定拷贝的字节数为5个字节,也就是说将hello拷贝过去,因而最终输出的结果应为hello。
特别说明一下,strncpy函数将内容拷贝过去时是不会自带\0的,这个可以通过下例进行说明:
C、strncat
来看以下这段代码:
使用strncat函数,将从str2这个地址处开始后5个字节的内容拷贝到str1字符串的内容之后,故输出结果如下所示:
特别说明,使用strncat函数,拷贝过去时会自带\0,这个可以通过以下代码进行验证:
3、字符分类函数
字符串分类函数有很多,例如:
isupper:用于判断是否为大写字母
islower:用于判断是否为小写字母
isalpha:用于判断是否为字母
isdigit:用于判断是否为数字字符
isalnum:综合isalpha和isdigit
字符串分类函数有很多,在此不一一列举,这些函数都包含在头文件ctype.h中
4、字符转换函数
字符转换函数只有两个: toupper和tolower。
toupper是将小写字母转换为大写字母,tolower则相反,两者都包含在头文件ctype.h中。