Написать программу, содержащую две функции, сравнения строк, эквивалентные стандартной функции strcmp - C (СИ)

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

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

Добрый вечер, многоуважаемые гуру программирования. Прошу помочь написать одну программу, собственно, вот она: "Написать программу, содержащую две пользовательские функции сравнения строк, эквивалентные стандартной функции strcmp. Первая из них должна использовать индексацию массива, вторая – указатели и арифметические операции с ними." На форуме уже есть похожая тема(Написать функции сравнения строк, эквивалентные стандартной функции strcmp), в ней скинули ссылку на другую тема, в которой есть решение данной задачи, но я, к сожалению, не с мог в ней разобраться. Если кто то может объяснить или знает, как написать эту программу, пожалуйста помогите, буду очень признателен, заранее спасибо.

Решение задачи: «Написать программу, содержащую две функции, сравнения строк, эквивалентные стандартной функции strcmp»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int mystrcmp(const char * a, const char * b) {
  4.     return ( *a && *a == *b ) ? mystrcmp(a + 1, b + 1) : *a - *b;
  5. }
  6.  
  7. int main(void) {
  8.     char sA[BUFSIZ], sB[BUFSIZ];
  9.    
  10.     while ( printf("First: ") && fgets(sA, BUFSIZ, stdin) && *sA != '\n' && printf("Second: ") && fgets(sB, BUFSIZ, stdin) ) {
  11.         int d = mystrcmp(sA, sB);
  12.         printf("%s\n", ( d < 0 ) ? "First less" : ( d > 0 ) ? "Second less" : "The same");
  13.     }
  14.    
  15.     return 0;
  16. }

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

  1. Программа содержит две функции: mystrcmp и main.
  2. Функция mystrcmp реализует алгоритм сравнения строк, аналогичный функции strcmp.
  3. В функции mystrcmp используется рекурсивный подход для сравнения строк.
  4. В функции main создаются две буферные строки sA и sB для ввода пользователем.
  5. В цикле while программа запрашивает у пользователя ввод двух строк и сохраняет их в буферных строках sA и sB.
  6. Затем программа вызывает функцию mystrcmp для сравнения строк и сохраняет результат в переменной d.
  7. В зависимости от значения d программа выводит сообщение о том, какая строка меньше.
  8. Цикл while продолжается до тех пор, пока пользователь не введет две пустые строки.
  9. Программа завершается возвратом значения 0 из функции main.

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


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

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

12   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы