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

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

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

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

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

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

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

  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
Похожие ответы