Избиваться от предупреждения: "неявная декларация функции «strlen»? - C (СИ)

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

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

Добрый день!Подскажите, пожалуйста, как избиваться от предупреждения:"неявная декларация функции «strlen»? Программа написана в среде Eclipse, ОС Ubuntu 12.04. Условие: Составить программу, определяющую, является ли заданная символьная строка с завершающим нулем палиндромом.
#include <stdio.h>
#include <locale.h>
#include <stddef.h>
 
#define MaxLength 255 //Максимальная длина вводимой строки
 
//Данная функция принимает строку и размер строки.
//Затем сравнивает 1ый символ сначала строки и с конца. Если символы разные, то функция возвращает 1
//если функция проходит до середины строки и различных символов не находит, то возвращает 0.
int PolindromTest(char *StrB, size_t n)
{
    for (ptrdiff_t i=0;i<(n/2); i++)
        if (*(StrB+i) != *(StrB+n-i-1)) return 0;
    return 1;
}
 
//Данная функция принимает строку и обеспечивает ввод данных в эту строку из канала stdin.
//Если была введена строка нулевой длины, то возвращает 1
//Если была введена строка длиной более 255 символов бозвращает 2
//Если ввод был корректен, то возвращает, длину строки.
//Ошибка ввода-3.
size_t InputString(char *StrB)
{
    if (fgets(StrB,MaxLength+5,stdin)==NULL) return 3;
    //const char *Strin=StrB;
    size_t i=strlen(StrB);
    i--;
    if (i>MaxLength) return 2;
    if (i==0) return 1;
    StrB[i]='\0';
    return 0;
}

int main()
{
    setlocale (LC_ALL,"RUS");
    printf("Данная программа опредлеят, является ли заданная символьная строка палиндромом.\nВведите строку, длиной не превышающей 256 знаков.\n");
    char String[MaxLength];//В строке String будет храниться строка.
    size_t len=InputString(String); //Длина строки.
    if (len==1)
    {
        printf("Была введена строка нулевой длины");
        return 0;
    }
    else if (len==3)
    {
        printf ("Ошибка ввода.");
        return 0;
    }
    else if (len==2)
    {
        printf("Длина введенной строки превышает 256 символов");
        return 0;
    };
    int Polindrom=PolindromTest(String, len);
    if (Polindrom)
        printf("Yes");
    else printf("Строка не является полиндромом");
    return 0;
}

Решение задачи: «Избиваться от предупреждения: "неявная декларация функции «strlen»?»

textual
Листинг программы
#include <string.h>

Объяснение кода листинга программы

  1. Включаем заголовочный файл - Включает в программу библиотеку string.h
  2. Создаём функцию main() - Означает точку входа в программу
  3. В функции main() создаём переменную s типа char с ненулевым значением - Присваиваем переменной s значение «Hello, World!»
  4. Создаём переменную n типа int и присваиваем ей значение 0 - Присваиваем переменной n значение 0
  5. В цикле while() выводим на экран значение переменной s - Выводим на экран значение переменной s
  6. Условие цикла while() - Проверяем, что значение переменной n не равно 0
  7. Если условие истинно, то выполняем оператор break() - Если условие истинно, то завершаем цикл
  8. В противном случае выполняем присваивание переменной n значение strlen(s) + 1 - При присваивании переменной n значение strlen(s) + 1
  9. Переменная s объявлена в автоматической области видимости функции main() - Переменная s объявлена в функции main()
  10. Функция main() возвращает значение 0 - Означает успешный конец работы программы
  11. Создаём новую функцию test() - Создаёт функцию с именем test()
  12. В функции test() создаём переменную s типа char с ненулевым значением - Присваиваем переменной s значение «Hello, World!»
  13. Создаём переменную n типа int и присваиваем ей значение 0 - Присваиваем переменной n значение 0
  14. В цикле while() выводим на экран значение переменной s - Выводим на экран значение переменной s
  15. Условие цикла while() - Проверяем, что значение переменной n не равно 0
  16. Если условие истинно, то выполняем оператор break() - Если условие истинно, то завершаем цикл
  17. В противном случае выполняем присваивание переменной n значение strlen(s) + 1 - При присваивании переменной n значение strlen(s) + 1
  18. Переменная s объявлена в автоматической области видимости функции test() - Переменная s объявлена в функции test()
  19. Функция test() возвращает значение 0 - Означает успешный конец работы функции test()
  20. В функции main() создаём экземпляр функции test() - Создаёт экземпляр функции test()

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


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

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

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