Напишите функцию reverse, размещающую символы в строке s в обратном порядке - C (СИ)

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

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

Есть упражнение: Напишите функцию reverse( s ), размещающую символы в строке s в обратном порядке. Я сходу реализовала ее так (см. ниже), но знаю, что можно и лучше и сейчас постараюсь подумать и написать более хороший способ. А пока пишу улучшенную версию, было бы неплохо увидеть ваши решения. Задачка простая, но все же интересно какие будут варианты ))
Листинг программы
  1. void reverse ( char s[] ) {
  2. char temp[ MAXLINE ];
  3. int i, j;
  4. for (i = 0; ( temp[ i ] = s[ i ] ) != '\0'; ++i );
  5. for (j = i - 1, i = 0; j >= 0; --j, ++i )
  6. s[ i ] = temp[ j ];
  7. s[ i ] = '\0';
  8. }

Решение задачи: «Напишите функцию reverse, размещающую символы в строке s в обратном порядке»

textual
Листинг программы
  1. void Reverse(char a[])
  2. {
  3.     int j = 0;
  4.     int i = strlen(a) - 1;
  5.     int temp;
  6.     while(i > ((strlen(a) - 1)) / 2)
  7.     {
  8.         temp = a[j];
  9.         a[j] = a[i];
  10.         a[i] = temp;
  11.         j++;
  12.         i--;
  13.     }
  14. }

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

  1. В функции объявлены три переменные: j, i, temp.
  2. Значение переменной j установлено равным нулю, а значение переменной i установлено равным strlen(a) - 1.
  3. Переменная temp инициализируется значением a[j].
  4. Значение a[j] присваивается значению a[i], а значение a[i] присваивается значению temp.
  5. Значения переменных j и i инкрементируются и декрементируются соответственно.
  6. Цикл while выполняется до тех пор, пока значение i больше (strlen(a) - 1) / 2.
  7. Внутри цикла происходит обмен значениями a[j] и a[i], а затем инкремент и декремент переменных j и i.
  8. После завершения цикла, функция завершается.

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


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

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

6   голосов , оценка 3.333 из 5

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

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

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