C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。其实呢, C语言并不是一种很方便的语言,它的字符串就是一例。按照C语言的定义,“字符串就是一段内存空间,里面包含ASCII字符,并且,以”\0”结尾,总共能存放n-1个字符。”按照这个描述,字符串处理确实很麻烦,还很容易出错。
于是呢,为了方便用户,C语言标准库向用户提供了一些字符串函数,如字符串拷贝、构造、清空等函数,在一定程度上方便了用户的使用。
对于刚学习c语言的朋友们来说最常用的有以下函数:
一: 求字符串长度
strlen
二:字符串函数
strcpy strncpy
strcat strncat
strcmp strncmp
三.字符串查找
strstr
strtok
一.对于strlen(可以理解为string length),想必大家都比较熟悉,但是你真的熟吗?以下图示是c语言标准库里对他的声明:
说明:1.strlen是包括在string库里的一个函数
2,strlen函数是计算字符串长度,也是从字符串首地址,到\0所在位置结束,而strlen()函数主要返回字符串的长度,注意该函数所求字符串长度,是从字符串首地址,到\0所在位置结束,具体例子如下:
(1)当\0在最后时 strlen("123"); 返回长度为3 //字符串最后都有默认的\0
(2)但\0在中间时 strlen("12\0z3"); 返回长度为2 // \0后面字符不算入长度,且\0也不算入长度(注:当\0后面加的是数字时,该\0并不是字符串结束符,而是跟后面数字组合成八进制数,表示一个字符)
2.由上图我们可知,strlen的函数返回式是size_t。相信很多小伙伴对此一头雾水,怀疑自己是不是学了假的c语言,不要慌,让小编大大开带着你了解这个返回类型:
知道这个以后,由读者思考以下代码:
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[] = "hello";
char arr2[] = "hello writer";
if (strlen(arr1) - strlen(arr2) > 0)
{
printf(">\n");
}
else
{
printf("<\n");
}
return 0;
}
那么欢迎感兴趣的老铁在评论区回答,让小编大大看看有多少爱学习的友友!!
二:strcpy(即string copy),看这名字我们就知道他是字符串拷贝函数,我们来一起看看他的声明:
说明:
字符串拷贝函数,将源头字符串的内容拷贝到目标字符串中;其中const 修饰:源字符串参数用const修饰,防止修改源字符串;
2,目标字符串要有足够大的空间。
3,即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符;
示例说明:
char a[7]="hello world";
char b[4]="hi world";
strcpy(a,b);
printf ("%s",a);
小伙伴们可以自己试一试,感受一下strcpy函数的妙处。
char b[MAX]="we are family.";
char *p;
p=strcpy(b+8,a);
printf("%s",p);
可能到这里你已经发现了一些问题,如果想把一个字符串的一部分复制到另一个字符串的某个位置,该怎么办呢,显然strcpy()函数是满足不了这个功能的,strncpy()函数是为了弥补strcpy()函数不能检查目标字符串是否容纳下源字符串的不足而设定的一个函数。并且完全可以实现这个功能。
以上如有错误,还请大家指出,由于篇幅关系,我们下篇文章介绍剩余函数。友友们,点个关注给个赞再走呗^~^