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

multi-character character constant - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Andryuxa
Заблокирован
23.07.2012, 13:55     multi-character character constant #1
Привет!
Я решил написать виселицу на С++ для консоли. И у меня вылетает ошибка multi-character character constant. Вот сам код:


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
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
    int q;
    int y;
    char p;
    int d;
    int i=0;
    char w[20]={ '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]', '[ ]'};
    char t[q];
    char l;
    cout<<" Enter word (please make sure word is < 20 letters):   ";
    gets(w);
    q==strlen(w);
    cout<<"This word constants "<<q<<" letters\n"<<"Please enter letter";
    do
    {
                cin>>l;
                p=strchr(w,l);
                if(p!==NULL)
                {
                w[p]==l;
                cout<<w;
                y++; 
                }
                else
                {
                cout<<"You entered not right letter\n";
                d++;
                }
    }
    while (d<7 || y<q);
    if (d==7) cout<<" You LOSE!\n"<<" Right word is: '"<<w<<"'\n";
    system ("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
23.07.2012, 14:00     multi-character character constant #2
Ты неправильно объявил
C++
1
char w[20]
canopen
411 / 410 / 12
Регистрация: 16.07.2012
Сообщений: 886
23.07.2012, 14:00     multi-character character constant #3
В одинарных кавычках '...' может быть только один символ. Если хотите несколько символов, то надо использовать строки и двойные кавычки "...".
Andryuxa
Заблокирован
23.07.2012, 17:46  [ТС]     multi-character character constant #4
Цитата Сообщение от canopen Посмотреть сообщение
В одинарных кавычках '...' может быть только один символ. Если хотите несколько символов, то надо использовать строки и двойные кавычки "...".
Когда ставлю двойные выдает ошибку: invalid conversion from 'const char*' to 'char'.
И воо бще при начальном коде у меня высвеыивало ошибку в строке if(p!==NULL)

Добавлено через 32 секунды
Цитата Сообщение от kravam Посмотреть сообщение
Ты неправильно объявил
C++
1
char w[20]
Да?
А как правильно подскажите?

Добавлено через 3 минуты
Исправил ошибку multi-character character constant.
Теерь выдает в строке p=strchr(w, l); ошибку invalid conversion from 'char' to 'char'
и еще в строке if(p!=NULL) ошибка [Warning] NULL used in arithmetic
canopen
411 / 410 / 12
Регистрация: 16.07.2012
Сообщений: 886
23.07.2012, 18:40     multi-character character constant #5
У вас в переменной w что ли вводимое слово должно храниться? Зачем его инициализировать тогда? И чем вы его хотите инициализировать?
Andryuxa
Заблокирован
23.07.2012, 19:18  [ТС]     multi-character character constant #6
Вообщем я погуглил и изменил код вот он:

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int q;
int y;
char p;
int d;
int i=0;
char s[20];
char w[20]={ '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_' };
char t[q];
char l;
cout<<" Enter word (please make sure word is < 20 letters): ";
gets(s);
q==strlen(s);
for (i=0; i<q; i++)
{
w[i]=t[i];
}
cout<<t;
cout<<"\nThis word constants "<<q<<" letters\n"<<"Please enter letter";
do
{
cin>>l;
p=strrchr(s, l);
if(p!=0)
{
w[p]==l;
cout<<w;
y++;
}
else
{
cout<<"You entered not right letter\n";
d++;
}
}
while (d<7 || y<q);
if (d==7) cout<<" You LOSE!\n"<<" Right word is: '"<<w<<"'\n";
system ("pause");
return 0;
}

теперь осталась в строке p=strrchr(s, l); ошибка invalid conversion from 'char*' to 'char'.
Код конечно выглядит стремно, надеюсь не одному мне он понятен

Добавлено через 2 минуты
Цитата Сообщение от canopen Посмотреть сообщение
У вас в переменной w что ли вводимое слово должно храниться? Зачем его инициализировать тогда? И чем вы его хотите инициализировать?
Посмотрите пожалуйста новое сообщение.
Теперь в w хранится как бы "игровой стол" сначала он выглядит так _____ .
В s хранится слово. Игрок вводит желаемый символ (l), а программа через функцию strrchr проверяет наличие символа в строке s.
canopen
411 / 410 / 12
Регистрация: 16.07.2012
Сообщений: 886
23.07.2012, 19:40     multi-character character constant #7
Функция strrchr ищет символ в строке и возвращает указатель на него, а вы используете ее так, как будто она ищет не символ, а его позицию. К тому же путаете == и = в некоторых местах
Andryuxa
Заблокирован
23.07.2012, 19:44  [ТС]     multi-character character constant #8
Цитата Сообщение от canopen Посмотреть сообщение
Функция strrchr ищет символ в строке и возвращает указатель на него, а вы используете ее так, как будто она ищет не символ, а его позицию. К тому же путаете == и = в некоторых местах
Насколько я знаю strchr возвращает указатель на его первое вхождение
http://www.cplusplus.com/reference/c...string/strchr/
canopen
411 / 410 / 12
Регистрация: 16.07.2012
Сообщений: 886
23.07.2012, 19:49     multi-character character constant #9
Я это и имел в виду, только у вас не strchr, а strrchr. Но это не имеет значения, потому что в любом случае вы получаете указатель, а поэтому тип переменной p должен быть const char* p. И соответственно запись w[p] = l потеряет всякий смысл
Andryuxa
Заблокирован
23.07.2012, 19:56  [ТС]     multi-character character constant #10
Цитата Сообщение от canopen Посмотреть сообщение
Функция strrchr ищет символ в строке и возвращает указатель на него, а вы используете ее так, как будто она ищет не символ, а его позицию. К тому же путаете == и = в некоторых местах
Ну, а если я все-таки не прав подскажите функцию чтобы узнать позицию символа. Ну или замену.

Добавлено через 3 минуты
Цитата Сообщение от canopen Посмотреть сообщение
Я это и имел в виду, только у вас не strchr, а strrchr. Но это не имеет значения, потому что в любом случае вы получаете указатель, а поэтому тип переменной p должен быть const char* p. И соответственно запись w[p] = l потеряет всякий смысл
Понятно, спасибо. Теперь я даже не знаю что делать. Как вернуть смысл w[p]=?
Можно например вместо const char* взять const int*?

Добавлено через 18 секунд
Цитата Сообщение от canopen Посмотреть сообщение
Я это и имел в виду, только у вас не strchr, а strrchr. Но это не имеет значения, потому что в любом случае вы получаете указатель, а поэтому тип переменной p должен быть const char* p. И соответственно запись w[p] = l потеряет всякий смысл
Понятно, спасибо. Теперь я даже не знаю что делать. Как вернуть смысл w[p]=?
Можно например вместо const char* взять const int*?

Добавлено через 2 минуты
И тем более если переменная p будет константой, то я не смогу менять его занчение, а мне это нужно
canopen
411 / 410 / 12
Регистрация: 16.07.2012
Сообщений: 886
23.07.2012, 20:01     multi-character character constant #11
Цитата Сообщение от Andryuxa Посмотреть сообщение
И тем более если переменная p будет константой, то я не смогу менять его занчение, а мне это нужно
Переменная const char* p не будет константой, чтобы она была константой ее надо объявлять так char* const p.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2012, 20:07     multi-character character constant
Еще ссылки по теме:

[C++ Error] Unit1.cpp(9): E2129 Character constant too long (or empty) C++
Операторы if и char - Multi-character character constant C++
Вылезает: [Warning] character constant too long for its type C++

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

Или воспользуйтесь поиском по форуму:
Andryuxa
Заблокирован
23.07.2012, 20:07  [ТС]     multi-character character constant #12
Спасибо за ваш труд! По ходу общения менял код вроде работает
Yandex
Объявления
23.07.2012, 20:07     multi-character character constant
Ответ Создать тему
Опции темы

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