strlen
- size_t strlen(const char *s);
//获取数组的长度,其中不包括0
strcmp
- int strcmp(const char *s1,const char *s2);
– 0: s1==s2;
– >0: s1>s2;
– <0: s1
strcpy 复制
- char *strcpy(char *restrict dst,const char *restrict src)
- 把src的字符串拷贝到dst上,把后者给前者;
- 注
- restrict关键字:表明src和dst不重叠(C99)
- 返回值是dst
- 为了能链起代码来
strcat 做链接
- char * strcat(char * restrict s1,const char *restrict s2);
- 把s2拷贝到s1的后面,接成一个长的字符串;
- 返回s1;
- s1必须开辟足够的空间;
安全问题?
- strcpy和strcat中都可能出现安全问题;
- 因为返回的目的地(数组)可能没有足够的空间;
解决方案
安全的版本:
char * strncpy(char *restrict dst,const char *restrict src,size_t n);
char *strncat(char *restrict s1,const char *restrict s2,size_t n);
所有的n代表可以复制的大小;
int strncmp(const char *s1,const char *s2,size_t n);
n代表只判断前n个就行了char * strchr(const char *s,int c);—在c在数组的位置,从前开始
- char * strtchr(const char *s,int c);—在c在数组的位置,从后开始
- 返回NULL表示没有找到