Создание функции StrStr () - PullRequest
0 голосов
/ 05 марта 2019

Это код, который я написал до сих пор, но я хочу сделать int myStrStr вместо char myStrStr Но когда я ставлю int вместо char, это выдает мне ошибку. Пожалуйста, помогите.

int my_strlen(const char *s1) {
    int i;
    for (i = 0; *s1; s1++, i++);
    return i;
}

char myStrStr(char * haystack, char * needle){
    int i;
    if(*needle =='\0')
        return (char *)haystack;
    else{
        for(;*haystack; haystack++){
            if(*haystack == *needle){
                for(i=1;*(haystack +i)==*(needle +i);i++);
                if(i==my_strlen(needle))
                    return (char *)haystack;
            }
        }
        return NULL;
    }
}

1 Ответ

1 голос
/ 05 марта 2019

Из-за вас вернуть char* или NULL. Вы не можете приводить указатели к не указательным типам. Теперь должна быть ошибка при компиляции. Ваша функция должна вернуть char*.

Вы не можете привести char* к int*, поскольку int выделяет больше памяти в памяти, поэтому память должна быть перераспределена, это должно быть сделано вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...