自己实现strchr函数与strstr函数

char * Strchr(char to[], char Ch)
{
    int i = 0;
    while (to[i] != Ch && to[i] != '\0')
    i++;
    return to[i] != '\0' ? to + i : NULL;
}
char* my_strchr(char* str, int i)
{
 if (NULL == str)
 {
  return NULL;
 }
 while ('\0' != *str && (char)i != *str)
 {
  ++str;
 }
 if ((char)i == *str)
 {
  return (char*)str;
 }
 return NULL;
}
const char *my_strstr(const char *str, const char *sub_str)  
{  
    for(int i = 0; str[i] != '\0'; i++)  
    {  
        int tem = i; //tem保留主串中的起始判断下标位置   
        int j = 0;  
        while(str[tem++] == sub_str[j++])  
        {  
            if(sub_str[j] == '\0')  
            {  
                return &str[i];  
            }  
        }    
    }  
  
    return NULL;  
} 
 
 
char* my_strstr(char* sr, const char* dest)
{
    if (NULL == sr || NULL == dest)
    {
        return NULL;
    }
    while ('\0' != *sr)
    {
        const char* str_str = sr;
        const char* temp_dest = dest;
        while ('\0' != *temp_dest)
        {
            if (*temp_dest != *str_str)
                break;
            if ('\0' == *(++temp_dest))
                return (char*)sr;
            if ('\0' == *(++str_str))
                return NULL;
        }
        ++sr;
    }
    return NULL;
}
 
  
 
 

猜你喜欢

转载自www.cnblogs.com/nanqiang/p/9979464.html