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

Укажите путь заблудшему - C++

Восстановить пароль Регистрация
 
_Alexander
12 / 12 / 1
Регистрация: 05.11.2012
Сообщений: 49
24.01.2013, 13:30     Укажите путь заблудшему #1
Есть строка вида "Alex Johnson|1234678901\nBill Gates|548161198\n" - т.е. "<Абонент>|<номер телефона>\n...".
Написал функцию которая принимает в качестве параметра эту строку и возвращает массив структур:
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
...
struct Abonent
{
    char name[256];
    char number[15];
};
...
 
Abonent * Parse(char * data)
    {
        Abonent * temp;
        int count = 0;
        for(int i=0;i<strlen(data);i++)// подсчет количества абонентов
            if(data[i] == '\n')
                count++;
        temp = new Abonent[count];// выделение памяти под возвращаемый массив
        int index = 0;
        int c = 0;
        for(int i = 0; i<strlen(data);i++)
        {
            if((data[i]>='a'&&data[i]<='z')||(data[i]>='A'&&data[i]<='Z')||data[i] == ' ')
            {
                temp[index].name[c] = data[i];
                c++;
            }
            
            if(data[i]>='0'&&data[i]<='9')
            {
                temp[index].number[c] = data[i];
                c++;
            }
            
            if(data[i] == '\n')
            {
                temp[index].number[c] = '\0';
                index++;
                c=0;
            }
            if(data[i] == '|')
            {
                temp[index].name[c] = '\0';
                c=0;
            }
        }
       return temp;
    }
          void main()
          {
                       Abonent * b = Parse(Read());//здесь функция char * Read() выполняет чтение из файла
                int i=0;
                while((b+i) == NULL)
               {
                    cout<<"Name: "<<(b+i)->name<<" phone: "<<(b+i)->number<<endl;
                    i++;
               }
 
          }
вопрос следующий: как правильно удалить массив b
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2013, 13:30     Укажите путь заблудшему
Посмотрите здесь:

Укажите на ошибки C++
C++ Укажите ошибку!
C++ укажите на ошибку в листинге
Укажите на ошибку C++
Укажите на ошибку C++
Укажите на ошибку C++
Укажите на ошибки C++
C++ Укажите на ошибки в программе

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
extenup
53 / 53 / 3
Регистрация: 12.11.2011
Сообщений: 109
24.01.2013, 18:24     Укажите путь заблудшему #2
C++
1
delete[] b;
booker
 Аватар для booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
24.01.2013, 19:08     Укажите путь заблудшему #3
юзай isalpha () и isdigit ()

http://www.cplusplus.com/reference/cctype/
Yandex
Объявления
24.01.2013, 19:08     Укажите путь заблудшему
Ответ Создать тему
Опции темы

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