Консультация № 176189
21.01.2010, 18:01
0.00 руб.
0 4 1
Помогите Пожалуйста!!! Не используя стандарт функций, кроме strlen, реализовать в виде собственной функции следующий алгоритм.Зеркально отобразить символы в строке (относительно центрального). Заранее Спасибо!!!!

Обсуждение

Неизвестный
21.01.2010, 19:12
общий
это ответ
Здравствуйте, Bien Tendu.

Программа в приложении

Приложение:
// Не используя стандарт функций, кроме strlen, реализовать в виде собственной функции следующий алгоритм.
// Зеркально отобразить символы в строке (относительно центрального).

#include <stdio.h>

// Функция зеркального отображения символов
void strReverse (char * s) {
char *p, *q;
char t;

// Определение последнего символа строки
for (q = s; *q; q++);
q--; // уменьшаем указатель, т.к. после цикла он указывает на символ '\0'

// Отображаем строку
for (p = s; p < q; p++) {
t = *p; // сохраняем символ из первой половины строки
*p = *q; // меняем его на симметричный
*q-- = t; // записываем сохраненный символ на новое место
}
}

void main () {
char s [80];

printf ("Введите строку: ");
scanf ("%s", s);

strReverse (s);

printf ("Обработанная строка: %s\n", s);
}
Неизвестный
22.01.2010, 09:36
общий
Bien Tendu:
Доброе утро!
Не используя стандарт функций, кроме strlen
Значит ли это, что strlen использовать обязательно?
Неизвестный
23.01.2010, 01:15
общий
Спасибо! За ответ.Скорей всего да. Так было написано в вопросе на экзамене!
Неизвестный
23.01.2010, 01:34
общий
Bien Tendu:
Добрый вечер! Объясню, почему этот вопрос задан.
Собственно, в этих строках ответа эксперта _Ayl_ strlen неявно вычисляется
Код:

// Определение последнего символа строки
for (q = s; *q; q++);
q--; // уменьшаем указатель, т.к. после цикла он указывает на символ '\0'

Форма ответа