Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/26: Рейтинг темы: голосов - 26, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 02.02.2014
Сообщений: 105
1

error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *"

13.02.2014, 11:02. Показов 4808. Ответов 7
Метки нет (Все метки)

1>c:\proect\8\8\8.cpp(64): error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *"
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(int i = 0; i< 5; i++)
  {
     wr_struc (list[i]);
 
    if (strcmp(&list[i].Sostav,osn_sostav)==0 && strcmp(&list[i].MestoVkomande,attack)==0 )
    {  
        i_min=i;
    } 
 
  }
 
    printf("Sportsmen of osnovnoi_napad %20s ! %2d.%2d.%4d !", list[i_min].fio,list[i_min].d_birth.day,list[i_min].d_birth.month,list[i_min].d_birth.year);
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2014, 11:02
Ответы с готовыми решениями:

Ошибка 6 error C2664: strtok: невозможно преобразовать параметр 1 из "const char *" в "char *"
string s = &quot;555 44 55 66&quot;;//размер строки заранее неизвестен char* p =...

Error C2664: atoi: невозможно преобразовать параметр 1 из "_TCHAR *" в "const char *" Как исправить эту ошибку в коде?
#include &quot;stdafx.h&quot; #define _XOPEN_SOURCE 500 #include &lt;conio.h&gt; #include &lt;stdio.h&gt;...

Error C2664: RegisterClassW: невозможно преобразовать параметр 1 из "WNDCLASSEX *" в "const WNDCLASSW *"
почему выдаёт ошибку? int RegClass(WNDPROC Proc,LPCTSTR szName,UINT brBackground){ WNDCLASSEX...

Error C2440: return: невозможно преобразовать "const char *" в "const char (&)[6]"
Вроде все правильно а все равно не работает. Подскажите в чем ошибка #include &lt;iostream&gt; ...

7
Модератор
Эксперт С++
11482 / 9400 / 5649
Регистрация: 18.12.2011
Сообщений: 25,113
13.02.2014, 11:11 2
А так
C++
1
if (strcmp(list[i].Sostav,osn_sostav)==0 && strcmp(list[i].MestoVkomande,attack)==0 )
А Sostav и MestoVkomande действительно строки?
0
1 / 1 / 1
Регистрация: 02.02.2014
Сообщений: 105
13.02.2014, 11:18  [ТС] 3
zss,
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"stdafx.h"
#include"iostream"
#include"conio.h"
 
using namespace std;
 
struct Data         
    {
        unsigned day;       
        unsigned month;     
        unsigned year;
    };
 
struct T_sport
    {
        char fio[40];
        Data d_birth;
        unsigned v_CSKA ;
        char MestoVkomande [20];
        char Sostav [20];
        
}; 
 
T_sport vvod_struc(int i);
void wr_struc(T_sport a);
 
int main()
{
 
    T_sport *p;
T_sport list [100]={"Ivanov I. I.",3,1,1984,2000,"Zachitnik","Rezerv", "Petrov A.A.",8,12,1987,2002, "Napad","Osnovnoii"};
    p=list+2;           //адресная арифметика
    strncpy(p->fio,"Martinov I. A.",40);//обращение
    p->d_birth.day=20;
    p->d_birth.month=12;
    p->d_birth.year=1974;
    p->v_CSKA=2007; 
    strncpy(p->MestoVkomande,"Zachitnik",20);
    strncpy(p->Sostav,"Osnovnoii",20);
    
    for(int i = 3; i< 5; i++)
    {   
        list[i]=vvod_struc(i);
    };
    cout<<"\nlist of structs\n!      fio           !  year of birth    !  in command     !  Mesto v Komande     !\n";
    
    
 
    
int i_min=0;
char *osn_sostav = "Osnovnoii";
char *attack = "Napad";
 
  for(int i = 0; i< 5; i++)
  {
     wr_struc (list[i]);
 
    if (!strcmp(&list[i].Sostav,osn_sostav) && !strcmp(&list[i].MestoVkomande,attack) )
    {  
        i_min=i;
    } 
 
  }
 
    printf("Sportsmen of osnovnoi_napad %20s ! %2d.%2d.%4d !", list[i_min].fio,list[i_min].d_birth.day,list[i_min].d_birth.month,list[i_min].d_birth.year);
 
    _getch();
return 0;
}
 
T_sport vvod_struc(int i)
{
    T_sport a; 
    char c;
    cout<<endl<<"Enter data "<< i+1 <<" person\n";
    cout<<" fio ";
    cin.getline(a.fio,40);
    cout<<endl<<"Enter date of birthday: \n";
    cout<<" day (1-31) ";
    cin>>a.d_birth.day;
    cin.get(c);
    cout<<" month (1-12)";
    cin>>a.d_birth.month;
    cin.get(c);
    cout<<" year ";
    cin>>a.d_birth.year;
    cin.get(c);
    cout<<" v_CSKA ";
    cin>>a.v_CSKA;
    cin.get(c);
    cout<<" MestoVkomande ";
    cin.getline(a.MestoVkomande,20);
    cout<<" Sostav ";
    cin.getline(a.Sostav,20);
 
    
    return a;
};
 
void wr_struc (T_sport a)
{
    printf("%20s ! %2d.%2d.%4d ! %4d ! %15s ! %15s\n",a.fio,a.d_birth.day,a.d_birth.month,a.d_birth.year,a .v_CSKA,a.MestoVkomande,a.Sostav);
}
0
Модератор
Эксперт С++
11482 / 9400 / 5649
Регистрация: 18.12.2011
Сообщений: 25,113
13.02.2014, 11:21 4
Амперсанды не нужны и еще надо так
C++
1
2
char osn_sostav[] = "Osnovnoii";
char attack[] = "Napad";
1
1 / 1 / 1
Регистрация: 02.02.2014
Сообщений: 105
13.02.2014, 11:29  [ТС] 5
zss, Записал так ... Компилятор ругается...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int i_min=0;
char osn_sostav[] = "Osnovnoii";
char attack[] = "Napad";
 
  for(int i = 0; i< 5; i++)
  {
     wr_struc (list[i]);
 
    if (!strcmp(list[i].Sostav,osn_sostav) && !strcmp(list[i].MestoVkomande,attack) )
    {  
        i_min=i;
    } 
 
  }
 
    printf("Sportsmen of osnovnoi_napad %20s ! %2d.%2d.%4d !", list[i_min].fio,list[i_min].d_birth.day,list[i_min].d_birth.month,list[i_min].d_birth.year);
 
    _getch();
return 0;
}
0
Модератор
Эксперт С++
11482 / 9400 / 5649
Регистрация: 18.12.2011
Сообщений: 25,113
13.02.2014, 11:45 6
Цитата Сообщение от Valera1984 Посмотреть сообщение
Записал так ... Компилятор ругается...
А у меня не ругается.
0
1 / 1 / 1
Регистрация: 02.02.2014
Сообщений: 105
13.02.2014, 12:41  [ТС] 7
zss, При вводе данных Sostav ///ругается

Добавлено через 2 минуты
zss, Все нашел ошибку у себя спасибо....
0
0 / 0 / 0
Регистрация: 08.09.2016
Сообщений: 1
08.09.2016, 06:24 8
VC++ 2010:
- Проект -> Свойства:"Имя проекта";
-- Свойства конфигурации -> Общее: Набор символов(Использовать много байтовую кодировку);
Если будет ругается на Microsoft .NET Framework то экспериментируем с "Поддержка общеязыковой среды выполнения CLR-среды (/clr)".
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.09.2016, 06:24

Ошибка: "char *concat(char *,.)": невозможно преобразовать аргумент 1 из "const char [4]" в "char *"
делал задание, но на строке 36 строке пишет, что &quot;char *concat(char *,...)&quot;: невозможно...

Error C2440: инициализация: невозможно преобразовать "const char [12]" в "char *"
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void...

Невозможно преобразовать параметр 2 из "char" в "const char *"
Ошибка strcpy: невозможно преобразовать параметр 2 из &quot;char&quot; в &quot;const char *&quot; //удаления из...

невозможно преобразовать параметр 1 из "const char [8]" в "LPCWSTR"
msoftcon.h //msoftcon.h //declarations for Lafore's console graphics functions //uses Window's...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru