Периодическая последовательность заданной строки - C (СИ)

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

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

Вроде задание простое, но только начинаю знакомство с этим языком, помогите реализовать как можно проще. Собственно вот задание: Определить, является ли периодической последовательностью заданная строка, т.е. имеет ли она вид d d ... d, где d – некоторая подпоследовательность символов.

Решение задачи: «Периодическая последовательность заданной строки»

textual
Листинг программы
#include<stdio.h>
#include<string.h>
 
int Check(char *s, char *t)
{
   return *s ? !strncmp(s, t, strlen(t)) && Check(s + strlen(t), t) : 1;
}
 
int main()
{
   puts(Check("abcabc", "abc") ? "yes" : "no");
   return 0;
}

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

В данном коде:

  1. В функции Check происходит проверка на совпадение подстроки s с t. Если s не равно NULL, то выполняется сравнение s и t с помощью функции strncmp. Если результат сравнения отрицательный, то возвращается значение 1. Если результат сравнения равен нулю, то рекурсивно вызывается функция Check с аргументами s + strlen(t) и t, пока не будет достигнуто совпадение или не будет выполнено условие *s == NULL. Если совпадение найдено, то возвращается значение 0.
  2. В функции main выводится сообщение yes, если функция Check вернула значение 0, иначе выводится сообщение no.
  3. В качестве аргументов функции Check используются строки abcabc и abc.
  4. Значение переменной s после вызова функции Check не используется.
  5. Значение переменной t после вызова функции Check не используется.
  6. Значение переменной main после вызова функции Check не используется.
  7. Значение переменной Check после вызова функции main не используется.
  8. Значение переменной s после вызова функции main не используется.
  9. Значение переменной t после вызова функции main не используется.
  10. Значение переменной puts после вызова функции main не используется.
  11. Значение переменной strlen после вызова функции main не используется.
  12. Значение переменной strncmp после вызова функции main не используется.
  13. Значение переменной main после вызова функции puts не используется.
  14. Значение переменной s после вызова функции puts не используется.
  15. Значение переменной t после вызова функции puts не используется.
  16. Значение переменной no после вызова функции puts не используется.
  17. Значение переменной yes после вызова функции puts не используется.
  18. Значение переменной return после вызова функции main не используется.
  19. Значение переменной 0 после вызова функции Check не используется.
  20. Значение переменной 1 после вызова функции Check не используется.

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


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

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

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