實現自己的字符串函數
因爲在面試的時候,很多公司是不允許使用C語言裏的庫函數的,這就要求我們要自己實現一些函數功能。在這裏,我向大家分享一下我寫的關於字符串的函數。雖然簡單,卻很實用。
my_strcmp(strcmp);
int my_strcmp(char *dest ,char *src)
{
while(*dest != '\0' && *src != '\0')
{
if(*dest > *src)
{
return (-1);
}
else if(*dest < *src)
{
return (1);
}
dest ++;
src ++;
}
if(*dest == '\0' && *src != '\0')
{
return (1);
}
else if(*dest != '\0' && *src == '\0')
{
return (-1);
}
else
{
return 0;
}
}
my_strcpy(strcpy) ;
char * my_strcpy(char *dest ,char *src)
{
char *temp = dest;
while(*src != '\0')
{
*dest = *src;
dest ++;
src ++;
}
*dest = '\0';
return temp;
}
my_strcat(strcat);
char * my_strcat(char *dest ,char *src)
{
int len = strlen(src);
int i = 0;
char *temp = dest;
while(*temp != '\0')
{
temp ++;
}
while(i < len)
{
*temp = *src;
temp ++;
src ++;
i ++;
}
*temp ='\0';
return dest;
}
my_strchr(strchr);
char * my_strchr(char * str , char ch)
{
while(*str != '\0' )
{
if(*str == ch)
{
return str;
}
str ++;
}
return NULL;
}
my_strlen(strlen);
int my_strlen(char *ptr)
{
int len = 0;
while(*ptr != '\0')
{
len ++;
ptr ++;
}
return len;
}
my_strstr(strstr);
char * my_strstr(char *str , char * deset)
{
int len_deset = strlen(deset);
int i = 0;
while(*str != '\0')
{
for(i = 0 ; i < len_deset ; i ++)
{
if(*(str + i) != * (deset + i))
{
break;
}
return str;
}
str ++;
}
return NULL;
}
my_strtok(strtok);
char * my_strtok(char *str , char *delim)
{
int len_delim = strlen(delim);
char * temp = str;
static char * flag;
int i = 0;
if(str != NULL)
{
while(*temp != '\0')
{
for(i = 0 ; i < len_delim ; i++)
{
if(*(temp + i) != *(delim + i))
{
break;
}
}
if(i == len_delim)
{
*temp = '\0';
flag = temp;
return str;
}
temp ++;
}
return NULL;
}
else
{
temp = flag + 1;
char *ch = temp;
if(*delim == '\0')
{
return ch;
}
while(*temp != '\0')
{
for(i = 0 ; i < len_delim ; i++)
{
if(*(temp + i) != *(delim + i))
{
break;
}
}
if(i == len_delim)
{
*temp = '\0';
flag = temp;
return ch;
}
temp ++;
}
return ch;
}
}