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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Слава Кондратье
1 / 1 / 0
Регистрация: 21.12.2011
Сообщений: 75
#1

динамические массивы - C++

27.03.2013, 20:32. Просмотров 254. Ответов 2
Метки нет (Все метки)

Здравствуйте,
Посмотрите ,пожалуйста,задачу!



Задание(общая схема алгоритма)
1.Запросить у пользователя максимально возможную по условиям задачи длину LenMax строки.
2.Создать динамический символьный массив данного размера(LenMax).
3.Запросить у пользователя исходную строку и записать ее в массив,созданный в п. 2.
4.Если длина введенной строки меньше LenMax,изменить количество памяти,выделенной под массив п.2(уменьшить размер массива,можно при помощи функции realloc).Выполнить действия , необходимые для решение задачи.
Задача:
Имеется строка,содержащая буквы и цифры.Преобразуйте эту строку так,чтобы сначала в ней шли все цифры исходной строки,а потом-все буквы исходной строки,но в обратном порядке.
Допустимые символы-цифры;прописные и строчные латинские буквы.
Примеры:
Исходная строка Результат
ad2e57b6 2576beda
Kozloff. Недопустимый символ - ' . '



СПАСИБО!!!!!!!!!!!!!!!!!!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2013, 20:32     динамические массивы
Посмотрите здесь:

Динамические массивы C++
Динамические массивы. C++
Динамические массивы. C++
C++ Динамические массивы...
Динамические массивы C++
Динамические Массивы C++
C++ Динамические массивы
C++ Динамические массивы
C++ динамические массивы
C++ Динамические массивы
Динамические массивы C++
Динамические массивы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
338 / 369 / 42
Регистрация: 20.01.2013
Сообщений: 1,116
27.03.2013, 21:43     динамические массивы #2
Как то так наверное
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
#include <iostream>
#include <cstring>
 
using namespace std;
 
int main()
{
    int LenMax;
    cout<<"Введите длинну строки"<<endl;
    cin>>LenMax;
    cin.get();
 
    char * arr= new char[LenMax];
    char * arr1;
    cout<<"Введите строку"<<endl;
    cin.getline(arr,LenMax);
 
    if(strlen(arr)<LenMax) {
        int i=0;
        arr1=new char[strlen(arr)];
           while(arr[i]!='\0'){
               arr1[i]=arr[i];
               i++;
           }
 
           arr1[strlen(arr)]='\0';
           delete []arr;
           arr=NULL;
 
    }
 
    cout<<arr1<<endl;
    cout<<strlen(arr1)<<endl;
 
    char * abc=(char*)"qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
    char * num=(char*)"0123456789";
 
    int count=0,count1=0;
 
    for(int k=0;k<strlen(arr1);k++)
        for(int j=0;j<strlen(abc);j++)
            if(arr1[k]==abc[j]) count++;
 
    for(int k=0;k<strlen(arr1);k++)
        for(int j=0;j<strlen(num);j++)
            if(arr1[k]==num[j]) count1++;
 
    char * str=new char[count];
    char * str1=new char[count1];
    char * str2=new char[count];
    char * str3=new char[count1];
 
    int a=0;
    for(int k=0;k<strlen(arr1);k++)
        for(int j=0;j<strlen(abc);j++)
            if(arr1[k]==abc[j]) { str[a]=arr1[k]; a++; }
    int b=0;
    for(int k=0;k<strlen(arr1);k++)
        for(int j=0;j<strlen(num);j++)
            if(arr1[k]==num[j]) { str1[b]=arr1[k]; b++; }
 
    str[count]='\0';
    str1[count1]='\0';
 
    cout<<str<<endl;
    cout<<str1<<endl;
 
    for(int k=count-1,n=0;k>=0;k--,n++)
        str2[n]=str[k];
    for(int k=count1-1,n=0;k>=0;k--,n++)
        str3[n]=str1[k];
    str2[count]='\0';
    str3[count1]='\0';
 
    char * res=new char[count+count1-1];
    for(int k=0;k<count1;k++)
        res[k]=str3[k];
    for(int k=count1,n=0;k<count+count1;k++,n++)
        res[k]=str2[n];
 
    res[count+count1]='\0';
 
    delete []arr1;
    arr1=NULL;
    delete []str;
    str=NULL;
    delete []str1;
    str1=NULL;
    delete []str2;
    str2=NULL;
    delete []str3;
    str3=NULL;
 
    cout<<res<<endl;
 
    delete []res;
    res=NULL;
 
 
    return 0;
}
можно при помощи функции realloc)
Забудь эту гадость
Слава Кондратье
1 / 1 / 0
Регистрация: 21.12.2011
Сообщений: 75
30.03.2013, 17:38  [ТС]     динамические массивы #3
спасибка,когда строку длинную вводишь цифры тоже в обратном порядке выдает)

Добавлено через 21 час 48 минут
а если не сложно можете объяснить строчки . пожалуйста
Yandex
Объявления
30.03.2013, 17:38     динамические массивы
Ответ Создать тему
Опции темы

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