Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как передать массив в функцию так, чтобы при выходе из функции он не изменялся? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ При вызове конструктора ошибка: L "Buffer is too small" & & 0 http://www.cyberforum.ru/cpp-beginners/thread1127581.html
Привет. При вызове конструктора вылетает эта ошибка. Student(char *n, char *s, char *p, int y, char *g) { name = new char; surname = new char; patr = new char; group = new char;
C++ Переделайте, пожалуйста, с использованием процедур. Код С++ #include <iostream> #include <time.h> #define SIZE_X 10 #define SIZE_Y 12 #define MAX_NUM 256 int main() { http://www.cyberforum.ru/cpp-beginners/thread1127580.html
Удалить из массива числа – палиндромы, в которых есть хотя бы одна нечетная цифра C++
помогите написать программу на С++ Дан массив из N целых чисел, где N<=16, каждое число в диапазоне от –32000 до 32000. Создать программу с обязательным использованием функций. Вместо чисел, имеющих...
Получение доступа к переменным класса из другого класса C++
Как передать по ссылке переменную из класса А в метод класса В?
C++ Найти строку в массиве без положительных элементов http://www.cyberforum.ru/cpp-beginners/thread1127574.html
Доброго времени суток! Есть задачка. Для двумерного массива разработайте код который бы находил последнюю строчку в массиве не содержащюю не одного положительного элемента. Большую половину...
C++ Как сформировать массив строк, разделенных нулями, с двойным нулем на конце Здравствуйте. Как сформировать массив строк, разделенных нулями, с двойным нулем на конце (null-terminated string array)? что это за массив такой? Подскажите, пожалуйста . подробнее

Показать сообщение отдельно
big_boom
1 / 1 / 0
Регистрация: 28.01.2014
Сообщений: 14
23.03.2014, 22:40  [ТС]
спасибо. все получилось) остался еще один вопрос. в коде строка 27 и 69. Это я создаю new_char с определенным количеством элементов и с удалением нет проблем.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
using namespace std;
#include <cstring>
void Without_vowels(char *&);
void With_numbers(char *&);
void Sorted_numbers(char *&str);
int main()
{
    char *str = new char[];
    cout << "Enter the string: " << endl;
    rewind(stdin);
    gets_s(str, strlen(str));
 
 
    cout << "Words with numbers: ";
    With_numbers(str);
 
    cout << "Words without vowels: ";
    Without_vowels(str);
 
    
 
    return 0;
}
void Without_vowels(char *&str)
{
    char *new_str = new char[strlen(str) + 1];
    strcpy(new_str, str);
    char *vowels = { "AaOoIiUuYyEe" };
    char *ptrnastr;
    char *next_token;
    
 
    ptrnastr = strtok_s(new_str, " .", &next_token);
    while (ptrnastr != NULL)
    {
        bool check = true;
        for (int i = 0; i < strlen(ptrnastr)+1; i++)
        {
            for (int j = 0; j < strlen(vowels); j++)
            {
                if (ptrnastr[i] == vowels[j])
                {
                    check = false;
                    break;
                }
 
            }
            if (check == false)
            {
                break;
            }
        }
        if (check == true)
        {
            cout << ptrnastr << " ";
        }
        
        ptrnastr = strtok_s(NULL, " .", &next_token);
        
    }
    //cout << str;
    delete [] new_str;
 
}
void With_numbers(char *&str)
{
    char *numbers = { "0123456789" };
    char *new_str = new char[strlen(str)+1];
    strcpy(new_str, str);
    char *ptrnachar;
    char*next_token = NULL;
    ptrnachar = strtok_s(new_str, " .", &next_token);
    while (ptrnachar != NULL)
    {
        bool check = false;
        for (int i = 0; i < strlen(ptrnachar)+1; i++)
        {
            for (int j = 0; j < strlen(numbers); j++)
            {
                if (ptrnachar[i] == numbers[j])
                {
                    check = true;
                    break;
                }
            }
 
            if (check == true)
            {
                break;
            }
        }
 
        if (check == true)
        {
            cout << ptrnachar << " ";
        }
        ptrnachar = strtok_s(NULL, " .", &next_token);
    }
    
    delete [] new_str;
 
}
но если вместо этих двух строчек в каждой написать
C++
1
char *new_str = new char[]
то тогда проблема с их удалением. как удалить динамический массив во втором случае?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru