Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
EmpoolsE
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 4
#1

Работа со структурой, не знаю как исправить

29.11.2012, 22:43. Просмотров 389. Ответов 5
Метки нет (Все метки)

помогите пожалуйста
есть структура и массив структуры
надо данные массива передать в функцию
помогите исправить ошибки, в работе со структурами я вообще дерево (((
если просто через массив передавать то все огонь, но надо именно через массив структур
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <string.h>
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
using namespace std;
 
int delenie(string buf,string result[]);
void analiz(string word);
 
 
string zapros;
int skol;
 
 struct token
{
 int nomer_leksemi_za_tipom;
 string value_leksemi;
 int nomer_leksemi_v_radku;
 string tip_leksemi;
 int dlina_leksemi;
 bool poryadok_slov;
 
};
token mas_info_token[100];
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleOutputCP(1251);
    int i;  
    string zapros("INSERT INTO DSCPL_Cycl_Qty  SELECT KodCycl, KodCc COUNT (KodDysc)  FROM DYSCYPL GROUP BY KodCycl;");
        cout<<zapros<<endl;
    skol=delenie(zapros,mas_info_token);   // Error Cannot convert 'token *' to 'string *'
    int dls=0;
    string buf;
    for (i=0; i<skol; i++)
    {
        dls=sizeof(mas_info_token[i]);
        buf = mas_info_token[i];  //[C++ Error] Could not find a match for 'string::operator =(token)'
        for(int j=0; j<dls; j++)
        {
            if(buf[j]==',') buf[j]=' ';
                        if(buf[j]==';') buf[j]=' ';
 
        }
        mas_info_token[i]=buf;
    }
    for (i=0; i<skol; i++)
    {
        analiz(mas_info_token[i]);
    }
    system("pause");
    return 0;
}
 
int delenie(string buf,string result[])
{
    
    return skol;
}
 
void analiz(string word)
{
 
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2012, 22:43
Ответы с готовыми решениями:

Не знаю как исправить ошибку
Всем привет! В общем делал задание на перегрузку операторов, вот код: ...

Ошибка, не знаю как исправить
Добрый вечер всем!! У меня возник небольшой вопрос по поводу моей...

Не знаю как исправить ошибку
при выводе всего списка не выдает верную информацию. Не могу понять что не...

Конфликты хейдеров,не знаю как исправить
Помоги плз,почитал в интернете,пишут,что конфликт хейдеров. Вот какие ошибки...

Много ошибок и не знаю , как исправить
Вот они &lt; для вложений используйте встроенные возможности форума /&gt; , а вот...

5
booker
23 / 23 / 5
Регистрация: 21.11.2012
Сообщений: 106
29.11.2012, 23:04 #2
вот ваша структура
C++
1
2
3
4
5
6
7
8
9
10
struct token
{
 int nomer_leksemi_za_tipom;
 string value_leksemi;
 int nomer_leksemi_v_radku;
 string tip_leksemi;
 int dlina_leksemi;
 bool poryadok_slov;
 
};
вот массив структур

token mas_info_token[100];

вот прототип функции void func ( token [100])

вот так передать масив в функцию:

func ( mas_info_token[100])

далее реализация:

void func ( token molotoken[100]) {....}

вот так обращаться к полям структуры внутри функции:

molotoken [n].nomer_leksemi_za_tipom = 0;
1
EmpoolsE
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 4
29.11.2012, 23:42  [ТС] #3
огромное спасибо

Добавлено через 35 минут
а как переменной buf передать значение mas_info_token[i]?
0
booker
23 / 23 / 5
Регистрация: 21.11.2012
Сообщений: 106
29.11.2012, 23:58 #4
buf переменная типа string, это строковый тип

token это тип определённый пользователем, по умолчанию вы не можете копировать string в token, возможно вам нужно присвоить переменной buf некоторое поле структуры token.

например такой код является корректным
C++
1
buf = mas_info_token[i].tip_leksemi
1
EmpoolsE
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 4
01.12.2012, 21:54  [ТС] #5
подскажи ещё, как правильно использовать массив вот тут
C++
1
skol=delenie(zapros,mas_info_token);
0
EmpoolsE
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 4
01.12.2012, 22:33  [ТС] #6
я просто не могу понять почему оно ругается, когда вписіваю стринговую переменную типа стринг, оно ругается что не может конвертировать из стринга в стринг*
как быть?
0
01.12.2012, 22:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2012, 22:33

Не знаю как исправить ошибку в программе
Добрый день. Вот код программы: #pragma argsused #include &lt;iostream.h&gt;...

Выдает ошибку, не знаю как исправить
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include...

Всплывает ошибка, не знаю как исправить
Во время компиляции (CodeBlocks) компилятор выдает ошибку: cannot open output...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru