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

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

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

Всем добрый вечер.Помогите решить задачу. Напишите программу ,которая читает слово в символьный массив ,а затем печатает это слово в обратном порядке .Воспользуйтесь функцией strlen() для вычисления индекса последнего массива.
#include <stdio.h>
#include <string.h>
#define size 20
 
int main(int argc, const char * argv[])
{
    
int i;
    
    char cim[size]; //cimvolni massiv
    printf ("Napishite slovo\n");
    scanf("%s",cim);
    printf("%lu    %s   %c\n",strlen(cim),cim,cim[2]);
    for(i=strlen(cim)-1;i>=0;i--)

        printf("%c",cim[i]);
    printf("\n");
    
    //  }
    return 0;
}
а как дальше записать символы в обратном порядке в массив?

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
#define size 20
 
void swap(char * a, char * b)
{
    char tmp = *a;
    *a = *b;
    *b = tmp;
}
 
char * reverse_array(char * start, size_t len)
{
    size_t i;
    for(i = 0; i < len / 2; ++i)
    {
        swap(start + i, start + (len - i - 1));
    }
    return start;
}
 
int main(int argc, const char * argv[])
{
    char cim[size];
    printf("Input word:\n");
    scanf("%19s", cim);
 
    reverse_array(cim, strlen(cim));
 
    printf("reversed word: %s\n", cim);
 
    return 0;
}

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

  1. Подключение необходимых библиотек
    • Включаем стандартную библиотеку ввода-вывода (stdio.h) для использования функций отладки и вывода на экран
    • Включаем библиотеку для работы со строками (string.h) для использования функции strlen
  2. Определение константы размера массива
    • Задаем константу size, ограничивающую количество элементов в массиве
  3. Создание функции swap для обмена значениями двух указателей
    • Создаем временную переменную tmp для хранения значения первого указателя
    • Меняем значение первого указателя на значение второго указателя
    • Меняем значение второго указателя на значение временной переменной tmp
  4. Создание функции reverse_array для переворота массива
    • Создаем цикл for для итерации по половине массива
    • Внутри цикла вызываем функцию swap для обмена значениями двух указателей
  5. Создание функции main для начала работы программы
    • Задаем размер массива cim равным константе size
    • Выводим приглашение для ввода слова
    • Считываем введенное слово в массив cim с помощью функции scanf
    • Вызываем функцию reverse_array для переворота массива cim
    • Выводим перевернутое слово на экран с помощью функции printf
  6. Завершение программы
    • Возвращаем 0 из функции main для успешного завершения программы

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

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