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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kirill1059
14 / 14 / 2
Регистрация: 16.04.2013
Сообщений: 370
#1

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

22.03.2014, 22:27. Просмотров 536. Ответов 8
Метки нет (Все метки)

Добрый вечер.
Пользователь должен ввести слово которое находиться в инструкции 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++
Сравнение строк C++
Сравнение строк C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12672 / 7180 / 801
Регистрация: 27.09.2012
Сообщений: 17,708
Записей в блоге: 2
Завершенные тесты: 1
22.03.2014, 22:38     Сравнение строк #2
C++
1
a == "Малыха"
сравнение адресов!

используйте, например strcmp
Памирыч
Почетный модератор
20548 / 8600 / 1028
Регистрация: 11.04.2010
Сообщений: 11,016
23.03.2014, 15:30     Сравнение строк #3
Цитата Сообщение от 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
1378 / 1268 / 231
Регистрация: 01.10.2011
Сообщений: 1,982
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
14 / 14 / 2
Регистрация: 16.04.2013
Сообщений: 370
24.03.2014, 11:19  [ТС]     Сравнение строк #6
edward_freedom, хм, спасибо большое)
получается не нужно было делать отступ между восклицательным знаком и знаком равно?)
Не подскажите где про это почитать и почему это считается за ошибку?
zss
Модератор
Эксперт С++
6188 / 5791 / 1875
Регистрация: 18.12.2011
Сообщений: 14,797
Завершенные тесты: 1
24.03.2014, 12:47     Сравнение строк #7
! - логическое отрицание
== - проверка на равенство
!= - проверка на неравенство
= - присваивание
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++
Сравнение строк C++
Сравнение строк C++

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

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

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