1.strlen的實現
int my_strlen(char *src)
{
int count = 0;
while(*src != '\0')
{
count++;
src++;
}
return count;
}
2.strcpy的實現
char * my_strcpy(char *dest, char *src)
{
char *temp = dest;
while(*src != '\0')
{
*(temp++) = *(src++);
}
*temp = '\0';
return dest;
}
3.strncpy的實現
char * my_strncpy(char *dest, char *src, int n)
{
int i;
if(my_strlen(src) < n)
{
return NULL;
}
for(i = 0; i < n; i++)
{
*(dest + i) = *(src + i);
}
*(dest + i) = '\0';
return dest;
}
4.strcat的實現
char * my_strcat(char *dest, char *src)
{
char *temp = dest;
while(*temp != '\0') //將指針移到dest末尾
{
temp++;
}
while(*src != '\0')
{
*(temp++) = *(src++);
}
*temp = '\0';
return dest;
}
5.strcmp的實現
int my_strcmp(char *s1, char *s2)
{
while(*s1 != '\0' && *s2 != '\0')
{
if(*s1 - *s2 > 0)
{
return 1;
}
else if(*s1 - *s2 < 0)
{
return -1;
}
s1++;
s2++;
}
if(*s1 == '\0' && *s2 == '\0')
{
return 0;
}
else if(*s1 == '\0' && *s2 != '\0')
{
return -1;
}
else if(*s1 != '\0' && *s2 == '\0')
{
return 1;
}
}