在string.h 中包含了以下几个部分:
目录
1.strlen()
在这个函数中strlen中的len表示length,因此可见函数strlen的作用是输出()中含有多少个字符。
当然我们要保证strlen()括号中的东西是一个常量,不会因为我们引用了strlen而改变
#include<stdio.h>
#include<string.h>
int main()
{
char word[]="hello";
printf("strlen=%d",strlen(word));
printf("sizeof=%d",sizeof(word));
return 0;
}
这段代码说明了strlen不会将这段字符后面的 \0 给计算进去。
2.strcmp()
int strcmp(const char*s1,const char*s2); 0 (s1==s2)
对于它的输出结果为: 1 (s1>s2)
-1 (s1<s2)
在这个函数中strcmp中的cmp表示compare,因此可见函数strcmp的作用是进行比较 ASCii 码,为了防止在比较的过程中对这两个量进行修改,同样和strlen一样,它所进行操作的对象也必须是一个常量。对于strcmp是一一比较,s1取一个s2也取一个,若相等则继续取,若不相等直接输出结果,而不去管后面是什么情况。
3.strcpy()
char * strcpy(char* restrict dst,const char *restrict src);
1.是将src的字符拷贝到dst上(因此src为const,而det则是一个变量)。
2.restrict表明src和dst不重叠。
这个函数的作用是将一个字符串里的内容(包括\0)拷贝到另一个字符串里。
#include<stdio.h>
#include<string.h>
int main(){
char arr1[] = "wxhwxd";
char arr2[] = "const";
strcpy(arr1, arr2); \\前面的字符串被替换
printf("%s\n",arr1);
printf("%s\n",arr2);
return 0;
}
4.strchr()、strrchr()
char *strchr(const char*str,int c)
1.str是要被检索的C语言字符串,而c则是我们在str中要搜索的目标。
2.若要返回NULL表明没有找到。
#include<stdio.h>
#include<string.h>
int main()
{
//第一段代码
const char *str = "nihao"; //和以上string函数一样,我们要保证在操作时不改变原字符串
//int c = 'h';
char *p = strchr(str, 'h');
printf("%s\n",p);
//又是一段代码
/*
char s[]="hello"; //因为数组是指针常量,所以我们不需要再加const
char*p=strchr(s,'l');
p=strchr(p+1,'l');
printf("%s\n",p);
*/ return 0;
} //可以尽行一系列的重组,让不同的表达形式输出相同的结果。
这两个符号都是搜索符号,其作用是在字符串里面找到我们所要找的那个字符及后续字符。