Прочитать слово в символьный массив, а затем напечатать это слово в обратном порядке - 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;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек
- Включаем стандартную библиотеку ввода-вывода (stdio.h) для использования функций отладки и вывода на экран
- Включаем библиотеку для работы со строками (string.h) для использования функции strlen
- Определение константы размера массива
- Задаем константу size, ограничивающую количество элементов в массиве
- Создание функции swap для обмена значениями двух указателей
- Создаем временную переменную tmp для хранения значения первого указателя
- Меняем значение первого указателя на значение второго указателя
- Меняем значение второго указателя на значение временной переменной tmp
- Создание функции reverse_array для переворота массива
- Создаем цикл for для итерации по половине массива
- Внутри цикла вызываем функцию swap для обмена значениями двух указателей
- Создание функции main для начала работы программы
- Задаем размер массива cim равным константе size
- Выводим приглашение для ввода слова
- Считываем введенное слово в массив cim с помощью функции scanf
- Вызываем функцию reverse_array для переворота массива cim
- Выводим перевернутое слово на экран с помощью функции printf
- Завершение программы
- Возвращаем 0 из функции main для успешного завершения программы