一.strlen的实现
int size_strlen(char *s)
{
if (NULL == s)
{
return -1;
}
int count = 0;
char *pa = s;
while (*pa++ != '\0')
{
count++;
}
return count;
}
int main()
{
char *str = "helloworld";
int count=size_strlen(str);
printf("count=%d\n",count);
return 0;
}
二.strcpy的实现
void mystrcpy(char *str1, char *str2)
{
int i;
for (i = 0; str2[i] != '\0'; i++)
{
str1[i] = str2[i];
}
str1[i] = '\0';
}
三.strcmp的实现
int mystrcmp(const char *s1, const char *s2)
{
int ret=0;
while(!(ret = *(unsigned char*)s1 - *(unsigned char*)s2 ) && *s1 )
{
s1++;
s2++;
}
if(ret<0)
{
return -1;
}
else if(ret>0)
{
return 1;
}
else
{
return 0;
}
}
四.strcat的实现
void mystrcat(char *str1,char *str2)
{
char *p1=str1;
char *p2=str2;
while(*p1)
{
p1++;
}
while(*p2)
{
*p1=*p2;
p2++;
p1++;
}
*p1=*p2;
}