[Мы решаем ваши проблемы с Си и Паскалем ]
Главная » Статьи » Задачи из заказов » Заказ 09.11.07

Функция преобразования текста определяется следующим образом:
// 5.27
//
// Функция   преобразования текста определяется следующим образом:
//
//           / f(y)x, если str == x;y и x не содержит ';'
// f(str) = |
//           \ str, если в str нет ':'
//          
// Реализовать функцию f с помощью рекурсивной процедуры.

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

char* f(char *str)
{
    char *x, *y, *ptr;
    ptr = strchr(str, ';');
    if (ptr != NULL)
    {
        x = str;
        ptr[0] = 0;
        y = ptr + 1;
        ptr = f(y);
        return strcat(ptr, x);
    }
    return str;
}


void main()
{
    clrscr();

    char *str, ans, *res;

    do
    {
        printf("Vvedite tekst\n");
        gets(str);

        res = f(str);
        printf("Resultat raboti functii:\n%s\n", res);

        printf("Esho raz?(Y/N)\n");
        ans = getch();
        printf("%c\n", ans);

        free(str);
        free(res);
    }
    while (ans == 'Y' || ans == 'y');
}

Категория: Заказ 09.11.07 | Добавил: solver (09.11.2007)
Просмотров: 1118