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

Сравнение строк - C++

Восстановить пароль Регистрация
 
kirill1059
 Аватар для kirill1059
14 / 14 / 2
Регистрация: 16.04.2013
Сообщений: 370
22.03.2014, 22:27     Сравнение строк #1
Добрый вечер.
Пользователь должен ввести слово которое находиться в инструкции if и ему должно показать что ответ верный.
Но почему то всегда пишет что не верно.

Вот код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstring>
using namespace std;
 
int main() {
    setlocale(LC_ALL, "Rus");
 
    char a[80];
    cout << "Кто в группе лох?: ";
 
    gets_s(a);
 
    if(a == "Малыха") {
        cout << "Верно! \n";
    }
    else {
        cout << "Не верно! Попробуйте ещё раз \n";
    }
 
    system("pause");
    return 0;
}
Подскажите что не так?
Спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 22:27     Сравнение строк
Посмотрите здесь:

C++ Сравнение строк
сравнение строк C++
C++ Сравнение строк
C++ Сравнение строк
сравнение строк C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,898
Записей в блоге: 2
Завершенные тесты: 1
22.03.2014, 22:38     Сравнение строк #2
C++
1
a == "Малыха"
сравнение адресов!

используйте, например strcmp
Памирыч
Администратор
 Аватар для Памирыч
20465 / 8517 / 1023
Регистрация: 11.04.2010
Сообщений: 10,988
23.03.2014, 15:30     Сравнение строк #3
Цитата Сообщение от kirill1059 Посмотреть сообщение
Кто в группе лох?
Цитата Сообщение от kirill1059 Посмотреть сообщение
Малыха
Если Малыха - реальный человек, эти конструкции на весь интернет Вас не красят
kirill1059
 Аватар для kirill1059
14 / 14 / 2
Регистрация: 16.04.2013
Сообщений: 370
24.03.2014, 01:06  [ТС]     Сравнение строк #4
Croessmah, Спасибо

но вот при компиляции выдаёт мне такие ошибки

Код
d:\disk кирилл\проекты\learn\learn.cpp(15): error C2143: синтаксическая ошибка: отсутствие ")" перед "!"
1>d:\disk кирилл\проекты\learn\learn.cpp(15): error C2143: синтаксическая ошибка: отсутствие ";" перед "!"
1>d:\disk кирилл\проекты\learn\learn.cpp(15): error C2059: синтаксическая ошибка: =
1>d:\disk кирилл\проекты\learn\learn.cpp(15): error C2059: синтаксическая ошибка: )
Вот сам код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
 
int main() {
    setlocale(LC_ALL, "Rus");
 
    char name[] = "Малыха";
    char otvet[80];
 
    do {
        cout << "Кто в группе лох?: ";
        gets_s(otvet);
    } while (strcmp (name, otvet) ! = 0);
 
    cout << "Верно! \n";
 
    system("pause")
    return 0;
}
edward_freedom
 Аватар для edward_freedom
1290 / 1180 / 208
Регистрация: 01.10.2011
Сообщений: 1,819
24.03.2014, 01:24     Сравнение строк #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
kirill1059,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
 
int main() {
    setlocale(LC_ALL, "Rus");
 
    char name[] = "Малыха";
    char otvet[80];
 
    do {
        cout << "Кто в группе лох?: ";
        gets_s(otvet);
    } while (strcmp (name, otvet) != 0);
 
    cout << "Верно! \n";
 
    system("pause");
    return 0;
}
kirill1059
 Аватар для kirill1059
14 / 14 / 2
Регистрация: 16.04.2013
Сообщений: 370
24.03.2014, 11:19  [ТС]     Сравнение строк #6
edward_freedom, хм, спасибо большое)
получается не нужно было делать отступ между восклицательным знаком и знаком равно?)
Не подскажите где про это почитать и почему это считается за ошибку?
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,181
Завершенные тесты: 1
24.03.2014, 12:47     Сравнение строк #7
! - логическое отрицание
== - проверка на равенство
!= - проверка на неравенство
= - присваивание
kirill1059
 Аватар для kirill1059
14 / 14 / 2
Регистрация: 16.04.2013
Сообщений: 370
24.03.2014, 12:52  [ТС]     Сравнение строк #8
zss, Спасибо, но я это знал.
Просто пробел между восклицательным знаком и знаком равно посчитался за ошибку
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2014, 13:05     Сравнение строк
Еще ссылки по теме:

Сравнение строк C++
Сравнение строк C++
C++ сравнение строк

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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,181
Завершенные тесты: 1
24.03.2014, 13:05     Сравнение строк #9
Цитата Сообщение от kirill1059 Посмотреть сообщение
пробел между восклицательным знаком и знаком равно посчитался за ошибку
Я имел ввиду, что Вы написали 2 отдельных операции: отрицание и присваивание,
точно также, если написать < < - то это 2 операции сравнения на "меньше".
Yandex
Объявления
24.03.2014, 13:05     Сравнение строк
Ответ Создать тему
Опции темы

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