字符串常用函数讲解(strcpy,strcmp,strstr,strncat,strlen,strspn)

1,strcmp

 原型:int strcmp(const char *s1,const char *s2)

返回值:s1 == s2,返回0;s1 < s2,返回负数;s1 > s2,返回正数

规则:从左到右比较ASCII码,直到‘/0’结束。

 

2,strcpy

原型:char *strcpy(char* dest, const char *src)

返回值:返回值指向dest的指针

规则:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间

注意:a,‘\0’也会被复制过去,src会抹除dest多余的字节空间。如下图

字符串常用函数讲解(strcpy,strcmp,strstr,strncat,strlen,strspn)

b,同理,如果src比dest空间大,dest地址末端会强制加入src剩余内容,但是dest长度不变,如下图

字符串常用函数讲解(strcpy,strcmp,strstr,strncat,strlen,strspn)

c,字符串指针作为dest,最好malloc申请内存空间,否则可能段错误。

 

3,strstr

原型:char *strstr(char *str1, const char *str2);

返回值:char*类型的str2出现在str1的地址

规则:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL

字符串常用函数讲解(strcpy,strcmp,strstr,strncat,strlen,strspn)

4,strncat

原型:char *strncat(char *dest, const char *str,  size_t n)

返回值;dest指针起始地址

规则:strncat()会把str起始的n个字节复制添加到dest结尾,并且抹去dest末尾的‘\0’,但是dest要有足够的空间容纳

字符串常用函数讲解(strcpy,strcmp,strstr,strncat,strlen,strspn)

5,strlen

原型:size_t strlen(const char *s)

返回值:s的字符数

规则:计算s的字符数,不包括结束标志,sizeof()是操作符,返回内存字节大小,strlen()是函数,返回字符数字

字符串常用函数讲解(strcpy,strcmp,strstr,strncat,strlen,strspn)

6,strspn

原型:size_t strspn(const char *str, const char *accept)

返回值:str包含accept的字符数

规则:计算str字符串中有多少字符是accept的

字符串常用函数讲解(strcpy,strcmp,strstr,strncat,strlen,strspn)

7,