Функция strstr и указатели - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написал свою версию фунции strstr из стандартной библиотеки string.h (не спрашивайте зачем)
char *strstr_(const char *string1, const char *string2)
{
    int i, j, n=strlen_(string2);
    for(i=0; string1[i]; i++, j++)
        {
            if (string1[i]!=string2[j]) j=-1;
            if (j==n) return string1+i-n;
        }
    return 0;
}
В некоторых компиляторах функция работает успешно, однако gcc выдает вот такой варнинг:

warning: return discards qualifiers from pointer target type

Я так понял, что ему не нравится возвращаемое значение. Вопрос - почему?

Решение задачи: «Функция strstr и указатели»

textual
Листинг программы
char *strstr_(const char *string1, const char *string2)
{
    int i, j, n = strlen_(string2);
    for (i = 0, j = 0; string1[i]; i++, j++)
    {       if (string1[i] != string2[j]) j = -1;
        if (j == n-1) return (char *)string1 + i - n+1;
    }   return NULL;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы