Избиваться от предупреждения: "неявная декларация функции «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>
Объяснение кода листинга программы
- Включаем заголовочный файл
- Включает в программу библиотеку string.h
- Создаём функцию main() -
Означает точку входа в программу
- В функции main() создаём переменную s типа char с ненулевым значением -
Присваиваем переменной s значение «Hello, World!»
- Создаём переменную n типа int и присваиваем ей значение 0 -
Присваиваем переменной n значение 0
- В цикле while() выводим на экран значение переменной s -
Выводим на экран значение переменной s
- Условие цикла while() -
Проверяем, что значение переменной n не равно 0
- Если условие истинно, то выполняем оператор break() -
Если условие истинно, то завершаем цикл
- В противном случае выполняем присваивание переменной n значение strlen(s) + 1 -
При присваивании переменной n значение strlen(s) + 1
- Переменная s объявлена в автоматической области видимости функции main() -
Переменная s объявлена в функции main()
- Функция main() возвращает значение 0 -
Означает успешный конец работы программы
- Создаём новую функцию test() -
Создаёт функцию с именем test()
- В функции test() создаём переменную s типа char с ненулевым значением -
Присваиваем переменной s значение «Hello, World!»
- Создаём переменную n типа int и присваиваем ей значение 0 -
Присваиваем переменной n значение 0
- В цикле while() выводим на экран значение переменной s -
Выводим на экран значение переменной s
- Условие цикла while() -
Проверяем, что значение переменной n не равно 0
- Если условие истинно, то выполняем оператор break() -
Если условие истинно, то завершаем цикл
- В противном случае выполняем присваивание переменной n значение strlen(s) + 1 -
При присваивании переменной n значение strlen(s) + 1
- Переменная s объявлена в автоматической области видимости функции test() -
Переменная s объявлена в функции test()
- Функция test() возвращает значение 0 -
Означает успешный конец работы функции test()
- В функции main() создаём экземпляр функции test() -
Создаёт экземпляр функции test()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д