2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Задачка на динамические строки
Сообщение21.03.2017, 09:28 


04/07/15
149
Здравствуйте. Разбираюсь с динамическими строками. Задачка удалить из строки цифры и спец. символы.
код: [ скачать ] [ спрятать ]
Используется синтаксис C
#include "stdafx.h"
#include <conio.h>
#include <string.h>

char * AllocStr(int n);
void FreeStr(char* Str);

char * InputStr();
char * DelSpec(char* St, char* Spec);

int main()
{
        char* specArr = "#@$%&01234567890";

        int n;

        printf("Enter size char array:");

        scanf("3%d", &n);

        char * Str = AllocStr(n);

        Str = InputStr();

        printf("This string:");
        printf(" %3s", Str);

        printf("\n");

        Str = DelSpec(Str, specArr);

        FreeStr(Str);
        _getch();
        return 0;
}

char * AllocStr(int n)
{
        return new char[n];
}

void FreeStr(char * Str)
{
        delete Str;
}

char * InputStr()
{
        char * s = 0;
        scanf("%s", s);
        return s;
}

char* DelSpec(char * St, char * Spec)
{
        for (int i = strlen(St) - 1; i >= 0; i--)
        {
                if (strchr(Spec, St[i]))
                {
                        printf(" %#010p", St + i);
                        strcpy(St + i, St + i + 1);
                }
        }
        return St;
}
 

getch не работает, так как его теперь нет в стандарте. Правильно ли я выделяю и очищаю память? Делал по аналогии с одномерными массивами чисел. Наколхозил ввод. Выпадает ошибка на стадии ввода.
Используется синтаксис C
int* allocMas(int n)
{
    return new int[n];
}
void freeMas(int* Arr)
{
    delete Arr;
}

 Профиль  
                  
 
 Re: Задачка на динамические строки
Сообщение21.03.2017, 12:49 


11/12/14
893
ptr = new T[] требует соответственного delete[] ptr

InputStr написана полностью неправильно, она вообще не выделяет никакой памяти, а пытается записывать данные из клавиатуры в участок памяти с адресом 0. Это не может работать.

 Профиль  
                  
 
 Re: Задачка на динамические строки
Сообщение24.03.2017, 16:12 


04/07/15
149
aa_dav
Все оказалось намного проще. gets_s теперь правит балом.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group