Напишите функцию reverse, размещающую символы в строке s в обратном порядке - C (СИ)
Формулировка задачи:
Есть упражнение: Напишите функцию reverse( s ), размещающую символы в строке s в обратном порядке.
Я сходу реализовала ее так (см. ниже), но знаю, что можно и лучше и сейчас постараюсь подумать и написать более хороший способ. А пока пишу улучшенную версию, было бы неплохо увидеть ваши решения. Задачка простая, но все же интересно какие будут варианты ))
void reverse ( char s[] ) { char temp[ MAXLINE ]; int i, j; for (i = 0; ( temp[ i ] = s[ i ] ) != '\0'; ++i ); for (j = i - 1, i = 0; j >= 0; --j, ++i ) s[ i ] = temp[ j ]; s[ i ] = '\0'; }
Решение задачи: «Напишите функцию reverse, размещающую символы в строке s в обратном порядке»
textual
Листинг программы
void Reverse(char a[]) { int j = 0; int i = strlen(a) - 1; int temp; while(i > ((strlen(a) - 1)) / 2) { temp = a[j]; a[j] = a[i]; a[i] = temp; j++; i--; } }
Объяснение кода листинга программы
- В функции объявлены три переменные: j, i, temp.
- Значение переменной j установлено равным нулю, а значение переменной i установлено равным strlen(a) - 1.
- Переменная temp инициализируется значением a[j].
- Значение a[j] присваивается значению a[i], а значение a[i] присваивается значению temp.
- Значения переменных j и i инкрементируются и декрементируются соответственно.
- Цикл while выполняется до тех пор, пока значение i больше (strlen(a) - 1) / 2.
- Внутри цикла происходит обмен значениями a[j] и a[i], а затем инкремент и декремент переменных j и i.
- После завершения цикла, функция завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д