#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char*str)//求字符串长度
{
int length;
for(length=0;*str!='\0';++length)
{
str++;
}
return length;
}
char *my_strcpy(char*str1,const char*str2)//字符串拷贝
{
assert((str1!=NULL)&&(str2!=NULL));
char *p=str1;
while(*str2!='\0')
{
*str1++=*str2++;
}
*str1='\0';
return p;
}
char *my_strcat(char *str1,const char*str2)//字符串连接
{
assert((str1!=NULL)&&(str2!=NULL));
char *p=str1;
while(*str1!='\0')
{
++str1;
}
while(*str2!='\0')
{
*str1++=*str2++;
}
*str1='\0';
return p;
}
char *my_strstr(const char*str1,const char*str2)//函数搜索一个字符串在另一个字符串中的第一次出现。
{
assert((str1!=NULL)&&(str2!=NULL));
for(int i=0;str1[i]!='\0';++i)
{
int tmp=i;
int j=0;
while(*str1==*str2)
{
str1++;
str2++;
if(*str2=='\0')
{
return &str1[tmp];
}
}
i=tmp;
}
return 0;
}
int my_strcmp(const char*str1,const char*str2)//字符串比较
{
assert((str1!=NULL)&&(str2!=NULL));
while((*str1!='\0')&&(*str2!='\0'))
{
if(*str1==*str2)
{
str1++;
str2++;
}
else if(*str1<*str2)
{
return -1;
}
else
return 1;
}
if(*str1=='\0'&&*str2!='\0')
{
return -1;
}
if(*str1!='\0'&&*str2=='\0')
{
return 1;
}
return 0;
}
string函数的模拟实现
猜你喜欢
转载自blog.csdn.net/qqkb1016/article/details/79776431
今日推荐
周排行