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

Динамический массив - C++

Восстановить пароль Регистрация
 
Roach
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 7
11.01.2011, 11:34     Динамический массив #1
Помогите пожалуйста переделать динамику,что бы она начиналась не с константы а с любого произвольного числа:
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
//---------------------------------------------------------------------------
#pragma hdrstop
#include <tchar.h>
#include <windows.h>
#include <iostream.h>
#include <string.h>
//---------------------------------------------------------------------------
char *MYstrncpy(char *s1,char *s2,int n)
{
    for (int i =0; i< n; i++)
    {
        s1[i]=s2[i];
    }
    return s1;
}
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
SetConsoleOutputCP(1251);
int i=255;
char *s1=new char [i];
char *s2=new char [i];
char *st1=new char [i];
char *st2=new char [i];
int n;
cout<<"Введите первую строку\n";
cin.getline(s1,30);
cout<<"Введите вторую строку\n";
cin.getline(s2,30);
cout<<"Введите количество копируемых символов\n";
cin>>n;
strcpy(st1,s1);
strcpy(st2,s2);
cout<<endl;
cout<<"Вывод результата моей функции: "<<MYstrncpy(s1,s2,n)<<"\n";
cout<<"Вывод результата стандартной функции: "<<strncpy(st1,st2,n)<<"\n";
delete []s1;
delete []s2;
delete []st1;
delete []st2;
system("pause");
    return 0;
}
//---------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2011, 11:34     Динамический массив
Посмотрите здесь:

Динамический массив C++
C++ статический массив ----> динамический массив
C++ Динамический МассиВ
динамический массив C++
Динамический массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
11.01.2011, 11:40     Динамический массив #2
вместо этого:
C++
1
int i=255;
сделай так:
C++
1
2
3
4
5
6
7
8
9
10
11
char *s1 = NULL;
char *s2 = NULL;
char *st1 = NULL;
char *st2 = NULL;
int size = 0;
cout<<"Введите размер массива:";
cin>>size;
s1 = new char [size];
s2 = new char [size];
st1 = new char [size];
st2 = new char [size];
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
11.01.2011, 11:41     Динамический массив #3
C++
1
2
3
4
5
#include <cstdlib>
#include <ctime>
///
srand(time(NULL));
int size=rand()%(b+1-a)+a; // из диапозона [a, b]
Roach
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 7
11.01.2011, 11:53  [ТС]     Динамический массив #4
Kenwood2010, а точно только эту строку надо заменить?
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
11.01.2011, 11:57     Динамический массив #5
ну да!
у тебя i = 255 это и есть размер каждого массива созданного динамически.
если сделать как у тебя то будет ругаться!

Добавлено через 2 минуты
все работает!
проверил!
Roach
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 7
11.01.2011, 12:04  [ТС]     Динамический массив #6
Kenwood2010, хм...у меня почему то крякозябли выводит....

Добавлено через 1 минуту
Kenwood2010, и к тому же пропускает ввод 1-ой строки,возможно как то надо сделать без ввода размера массива...можно как нибудь для каждой строки отдельно выделить память?
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
11.01.2011, 12:16     Динамический массив #7
смотрю и думаю...

Добавлено через 1 минуту
вот готово:

C++
1
2
3
4
5
6
cout<<"Ââåäèòå ïåðâóþ ñòðîêó\n";
cin >> s1;
cout<<"Ââåäèòå âòîðóþ ñòðîêó\n";
cin >> s2;
cout<<"Ââåäèòå êîëè÷åñòâî êîïèðóåìûõ ñèìâîëîâ\n";
cin>>n;
Roach
0 / 0 / 0
Регистрация: 08.12.2010
Сообщений: 7
11.01.2011, 12:19  [ТС]     Динамический массив #8
Kenwood2010, это в какую строчку записать?(сори за глупый вопрос,просто я нуб и могу не туда,куда надо вставить)
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
11.01.2011, 12:24     Динамический массив #9
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
//---------------------------------------------------------------------------
#include <tchar.h>
#include <windows.h>
#include <conio.h>
#include <iostream.h>
#include <string.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
 
char *MYstrncpy(char *s1,char *s2,int n)
{
        for (int i =0; i< n; i++)
        {
                s1[i]=s2[i];
        }
        return s1;
}
 
int main()
{
SetConsoleOutputCP(1251);
int size = 0, n = 0;
char *s1 = NULL;
char *s2 = NULL;
char *st1 = NULL;
char *st2 = NULL;
 
cout<<"Vvedite dlinu str: ";
cin >> size;
 
s1 = new char [size];
s2 = new char [size];
st1 = new char [size];
st2 = new char [size];
 
cout<<"1Ââåäèòå ïåðâóþ ñòðîêó\n";
cin >> s1;
cout<<"2Ââåäèòå âòîðóþ ñòðîêó\n";
cin >> s2;
cout<<"3Ââåäèòå êîëè÷åñòâî êîïèðóåìûõ ñèìâîëîâ\n";
cin>>n;
 
strcpy(st1,s1);
strcpy(st2,s2);
cout<<endl;
cout<<"4Âûâîä ðåçóëüòГ*ГІГ* ìîåé ГґГіГ*êöèè: "<<MYstrncpy(s1,s2,n)<<"\n";
cout<<"5Âûâîä ðåçóëüòГ*ГІГ* Г±ГІГ*Г*Г¤Г*ðòГ*îé ГґГіГ*êöèè: "<<strncpy(st1,st2,n)<<"\n";
 
delete []s1;
delete []s2;
delete []st1;
delete []st2;
getch();
return 0;
}
//---------------------------------------------------------------------------
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2011, 14:35     Динамический массив
Еще ссылки по теме:

C++ Динамический массив
C++ Переделать динамический массив на статический массив

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
11.01.2011, 14:35     Динамический массив #10
Kenwood2010 а почему в вашей программе когда указываешь длину массива, вводишь первую строку нажимаешь Enter, программа не дает ввести вторую строку и кол-во копируемых символов, а выводит результат моей функции и результат стандартной функции?
Yandex
Объявления
11.01.2011, 14:35     Динамический массив
Ответ Создать тему
Опции темы

Текущее время: 02:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru