Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2011, 00:52   #1
Комаров Валентин
Новичок
Джуниор
 
Регистрация: 03.12.2011
Сообщений: 1
По умолчанию Рекурсивные функции.Работа со строками. [C++]

Исходное задание:
Составить программу, используя рекурсивную функцию.
Массив S содержит 10 литер. Дана строка из 120 литер. Написать программу, включающую рекурсивную функцию, которая удаляет из строки все литеры, указанные в массиве S. Строка при этом “сжимается”. За первое внешнее обращение к рекурсивной функции должны удалятся все литеры, равные S(1), за второе - все литеры, равные S(2), и т.д.
Примечание. Имеется в виду, что в строке присутствует хотя бы одна литера, равная S(i), i=1...10.

Для "удаления" элементов, я решил просто использовать другой динамический массив (строку).

Проблема в том, что сделав все, чтобы он скомпилировался (Code::Blocks), он всё равно где-то зацикливается.

Функция абсолютно рабочая, осталось сделать рекурсию. Второй день бьюсь.

Код:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

char* dellet(char m[21], char n[121], int p);

int main()
{
    int i;

    char a[21];
    scanf("%s", a);
    printf("\na[20] = %s\n", a);

    srand(time(NULL));
    char b[121];
    for (i=0; i<120; i++)  b[i]=122-rand()%25;
    b[120]='\0';
    printf("\nb[120] = %s\n", b);

    printf("\nFINAL = %s", dellet(a,b,19));
    return 0;
}

char* dellet(char m[21], char n[121], int p){
int i,j=-1,k=-1;
for (i=0; i<120; i++) if (n[i]!=m[p]) k++;
char *c=(char*)calloc(k+1,sizeof(char));
for (i=0; i<120; i++)
        if (n[i]!=m[p])
        {
            j++;
            c[j]=n[i];
        }
    c[j+1]='\0';
return c;
}

Последний раз редактировалось Комаров Валентин; 03.12.2011 в 19:05.
Комаров Валентин вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсивные функции в С Licwin Общие вопросы C/C++ 1 14.11.2011 01:49
рекурсивные функции Kukurudza Общие вопросы C/C++ 5 23.06.2011 12:16
Рекурсивные функции NiaSpa Помощь студентам 3 04.03.2010 11:53
Рекурсивные функции. Geg[C/c++] Общие вопросы C/C++ 2 11.10.2009 11:28