#include <assert.h>
//比较两个字符串大小
int strcmp(const char *str1,const char *str2)
{
assert((*str1!=NULL)&&(*str2!=NULL));
while(*str1!='\0'&&*str2!='\0'&& *str1==*str2 )
{
str1++;
str2++;
}
int res=*str1-*str2;
if(res==0)
return 0; //str1等于str2
else if (res>0)
return 1; //str1大于str2
else
return -1; //str1小于str2
}
void main()
{
int x=strcmp("abc","abe");
printf("%d\n",x);
}
//把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
char *strcat(char *dest,char *src) //注:实参dest需要有足够空间容纳src,否则报错
{
assert((*dest!=NULL)&&(*src!=NULL));
char *address=dest;
while(*dest!='\0')
{
dest++;
}
while(*dest++=*src++)
{
NULL;
}
return address;
}
void main()
{
char str1[100]="abc",str2[]="efg";
char *p=strcat(str1,str2);
printf("%s\n",p);
}
//把从strSrc地址开始且含有NULL结束符的字符串赋值到以strDest开始的地址空间
char *strcpy(char *strDest,const char *strSrc)
{
assert((*strDest!=NULL)&&(*strSrc!=NULL));
char *address=strDest;
while((*strDest++=*strSrc++)!='\0')
{
NULL;
}
return address;
}
void main()
{
char str1[100]="abc",str2[]="efghig";
char *p=strcpy(str1,str2);
printf("%s\n",p);
}