目录
前言
1.4 strcmp
1.5 strncpy strncat strncmp
1.6 strstr
前言
C语言中对字符和字符串的处理是很频繁的,但是c语言本身是没有字符串类型的,字符串通常放在常量字符串中或着字符数组中。
字符串常量适用于那些对它不做修改的字符串函数。
1.4 strcmp
看一段代码:
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[20] = "zhangsan";
char arr2[] = "zhangsanfeng";
if (strcmp(arr1 , arr2)==0)
{
printf("==\n");
}
else
{
printf("!=\n");
}
return 0;
}
这段代码比较了arr1和arr2数组,如果相等,就输出“==”,不相等,就输出“!=”。
输出为:
可以看到,strcmp函数就是比较两个字符串的大小,如果前者大于后者,则输出正值;如果两者相等则返回0;如果前者小于后者,则输出负值。
这个例子证实了上面的解释。
对于strcpy、strcat、strcmp这种字符串函数,它们都是长度不受限的字符串函数(不用惯被操作的字符串有多长)。但是这样的长度不受限的函数是有缺点的,当我们用strcpy去将一个大于destination内容的字符串复制到它上面时,会出现越界访问,不安全,举个例子:
像这样去操作时,会出现错误,但是函数会强行将“hello world!”复制到arr中,所以比较微信。因此我们要介绍另一种函数,叫做长度受限字符串函数:
1.5 strncpy strncat strncmp
没错,就是在原来基础上加上一个n。作用是对应原来的,在原来的基础上长度受限的版本。
举一个例子,如stcncpy
我们发现,其运用就是在原基础上最后多加一个参数,就是操作字符的个数,这里我输入的是5,因此就只把前5个字符拷贝过来,于是成了hellof。同理,strncmp和strncat的用法也是如此,就是在原先的基础上多加上一个参数,声明要操作的字符的个数,以此来防止越界访问,增加程序的安全性。
1.6 strstr
此函数的作用是查找一个字符串里面的子串
看一个例子:
这个函数是在前一个字符串中找后一个字符串,如果找到就返回后者在前者出现位置的指针,找不到则返回空指针NULL。
本节先到此。