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

Ошибка с оператором для "==" - C++

Восстановить пароль Регистрация
 
schanker
 Аватар для schanker
5 / 5 / 0
Регистрация: 16.04.2010
Сообщений: 248
Записей в блоге: 1
14.04.2013, 21:41     Ошибка с оператором для "==" #1
Писал код и вышла ошибка: "Ошибка 2 error C2679: бинарный "==": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое преобразование отсутствует)"
Какой оператор я должен подключить??
вот сам код,
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{setlocale(LC_ALL,"Russian");
int i,n;
char* c[34];
string s;
string a[34]={"xxxxx","xxxxy","xxxyx","xxxyy","xxyxx","xxyxy",
"xxyyx","xxyyy","xyxxx","xyxxx","xyxxy","xyxyx","xyxyy",
"xyyxx","xyyxy","xyyyx","xyyyy","yxxxx","yxxxy","yxxyx",
"yxxyy","yxyxx","yxyxy","yxyyx","yxyyy","yyxxx","yyxxx",
"yyxxy","yyxyx","yyxyy","yyyxx","yyyxy","yyyyx","yyyyy"};
string b[34]={"01","02","03","04","05","06","07","08","09",
"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"};
 
cout << "Введите текст из x,y кратно 5!" << endl;
cin  >> s ;
if ((s.length()%5)==0)
{cout << "код шифра зачения "<<s<<" := " ;
 
for (i=s.length()>0;i=(i-5);)
        {   s.copy(c[n],5,i=+5);
            n++;
        }
for (n=(n-1);n>=0;n--)
    {
        for (i=0;i<34;i++)
        {if (c==(a[i]))......................вот это строка
        cout<<b[i]<<endl;
        }
    }
}
else {cout<<"Введите слово кратно 5!!!";}
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 21:41     Ошибка с оператором для "=="
Посмотрите здесь:

Подскажите почему может появляться ошибка: "неразрешенный внешний символ "_SDL_..."" C++
C++ Паттерн "Одиночка" и конструктор копии с оператором присваивания
error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "fprot" C++
C++ Не могу разобраться с оператором стрелка "->"
Возникает ошибка "0xC0000005: Нарушение прав доступа при чтении "0xfeeefee2"." C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
14.04.2013, 21:43     Ошибка с оператором для "==" #2
может вам не сравнение(==) надо а присвоение тогда просто =
schanker
 Аватар для schanker
5 / 5 / 0
Регистрация: 16.04.2010
Сообщений: 248
Записей в блоге: 1
14.04.2013, 21:44  [ТС]     Ошибка с оператором для "==" #3
Пробовал. Тогда "Ошибка 2 error C2440: =: невозможно преобразовать "std::string" в "char *[34]"
"
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
14.04.2013, 21:44     Ошибка с оператором для "==" #4
C++
1
int strcmp(const char *str1, const char *str2);
тебе в помощь))
cygwin
1 / 1 / 0
Регистрация: 10.04.2013
Сообщений: 17
14.04.2013, 21:45     Ошибка с оператором для "==" #5
C++
1
if (std::string(c) ==(a[i]))......................вот это строка
Попробуйте вот так
schanker
 Аватар для schanker
5 / 5 / 0
Регистрация: 16.04.2010
Сообщений: 248
Записей в блоге: 1
14.04.2013, 21:48  [ТС]     Ошибка с оператором для "==" #6
Цитата Сообщение от cygwin Посмотреть сообщение
C++
1
if (std::string(c) ==(a[i]))......................вот это строка
Попробуйте вот так
Тогда
Ошибка 2 error C2440: <function-style-cast>: невозможно преобразовать "char *[34]" в "std::string"

Добавлено через 2 минуты
Цитата Сообщение от Саня gamer Посмотреть сообщение
C++
1
int strcmp(const char *str1, const char *str2);
тебе в помощь))
Не помогает. Та же фигня с "=="
cygwin
1 / 1 / 0
Регистрация: 10.04.2013
Сообщений: 17
14.04.2013, 21:51     Ошибка с оператором для "==" #7
Цитата Сообщение от schanker Посмотреть сообщение
Тогда
Ошибка 2 error C2440: <function-style-cast>: невозможно преобразовать "char *[34]" в "std::string"
У вас с типа char **
C++
1
if (c==(a[i]))
Вы уверены, что именно это имеете ввиду сравнимая char ** (указатель на указатель на символьный тип) с типом string?
Возможно вам нужно что-то вроде
C++
1
if (std::string(c[n]) == a[i])
?
schanker
 Аватар для schanker
5 / 5 / 0
Регистрация: 16.04.2010
Сообщений: 248
Записей в блоге: 1
14.04.2013, 22:06  [ТС]     Ошибка с оператором для "==" #8
Но через через code bloks она идет. Решил переделать под визуал=(
и вот мучаюсь.
cygwin
1 / 1 / 0
Регистрация: 10.04.2013
Сообщений: 17
14.04.2013, 22:09     Ошибка с оператором для "==" #9
Цитата Сообщение от schanker Посмотреть сообщение
Но через через code bloks она идет. Решил переделать под визуал=(
и вот мучаюсь.
Она у вас никак не может идти, по крайней мере правильно. Ибо вы сравниваете char ** и string что есть абсурд.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2013, 22:28     Ошибка с оператором для "=="
Еще ссылки по теме:

C++ Игра "Жизнь"; Нужно, чтобы первое поколение задавалось оператором (с клавиатуры)
C++ #include "Sales_item.h" - ошибка "включаемый файл включает самого себя"
C++ Компилятор визуаль студио 2008 с++,выскакивает ошибка с оператором вывода "<< "

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

Или воспользуйтесь поиском по форуму:
zer0mail
2184 / 1867 / 187
Регистрация: 03.07.2012
Сообщений: 6,635
Записей в блоге: 1
14.04.2013, 22:28     Ошибка с оператором для "==" #10
Да... - не любит компилятор сравнения указателя и символа
Yandex
Объявления
14.04.2013, 22:28     Ошибка с оператором для "=="
Ответ Создать тему
Опции темы

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