1. 程式人生 > >自己實現strchr函式與strstr函式

自己實現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; }