1.size_t strlen(const char*s),返回s的字符串长度(不包括结尾的0)
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int mylen(const char* s)
{
int cnt=0;
int idx=0;//数组下标
while(s[idx]!='\0')//遍历数组,去找下标为\0的单元
{
idx++;
cnt++;
}
return cnt;
}
int main()
{
char Line[]="hello";
printf("strlen=%lu\n",strlen(Line));
printf("sizeof=%lu\n",sizeof(Line));
return 0;
}
2.int strcmp(const char *s1,const char *s2)
比较两个字符串,返回:
0:s1==s2
1:s1>s2
-1:s1<s2
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main(int argc,char const *argv[])
{
char s1[]="abc";
char s2[]="bbc";
printf("%d\n",strcmp(s1,s2));
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int mycmp(const char* s1,const char* s2)
{
// int idx=0; // 利用下标去判断
// while(s1[idx]==s2[idx]&&s1[idx]!='\0')
// {
if(s1[idx]!=s2[idx])
{
break;
}else if(s1[idx]==s2[idx]=='\0')
{
break;
}
// idx++;
// }
// return s1[idx]-s2[idx];
while (*s1==*s2&&*s1!='\0')
{
s1++;
s2++;
}
return *s1-*s2;
}
int main(int argc,char const *argv[])
{
char s1[]="abc";
char s2[]="Abc";
printf("%d\n",mycmp(s1,s2));
printf("%d\n",'a'-'A');
return 0;
}
3.strcpy
char *strcpy(char *restrict des,const char *restrict src)
des是目的,stc是源
把src的字符串拷贝到dst( 吧后面的字符串拷贝到前面)
restrict表明src和dst不重叠
返回dst
作用:复制一个字符串
加一是因为还要存字符串最后的\0
4.strcat
char*strcat(char*restrict s1,const char *restrict s2);
把S2拷贝到s1的后面,接成一个长的字符串
返回s1
s1必须具有足够的空间
5.字符串搜索函数