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

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

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

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

22.03.2014, 22:27. Просмотров 545. Ответов 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++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cstdio&gt; #include &lt;cstring&gt; using namespace std; int main(){ char s1,s2; ...

Сравнение строк - C++
Есть две стринговых строки которые нужно сравнить с учетом пробелов.Пробовал применять c_str() и использовать stricmp, но ничего не...

сравнение строк - C++
Подскажите как сравнить std::string и char *array ? может нужно преобразовать к одному типу сперва или функция какая есть ?

Сравнение строк - C++
нужно сравнить две строки на сходство, но они не обязательно должны быть полностью одинаковы, и потом вывести первую стоку если они ...

Сравнение строк - C++
Не прибегая к функциям сравнения строк, создайте программу, которая запрашивает у пользователя две строки и производит их сравнение,...

Сравнение строк - C++
Сначала указываю каталог, из которого нужно вывести список файлов этого каталога, затем ввожу имя искомого файла. В цикле делаю сравнение...

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

используйте, например strcmp
Памирыч
Почетный модератор
20567 / 8619 / 1028
Регистрация: 11.04.2010
Сообщений: 11,009
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
1393 / 1283 / 232
Регистрация: 01.10.2011
Сообщений: 2,016
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
Модератор
Эксперт С++
6276 / 5879 / 1902
Регистрация: 18.12.2011
Сообщений: 15,076
Завершенные тесты: 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++
Напишите программу, которая предлагает пользователю ввести две строки, а затем сравнивает их, игнорируя &quot;регистровые&quot; различия, т.е....

Сравнение строк - C++
Есть два файла,достаю из первого - 1-ю строку и из 2 - 1-ю строку Они имеют вид: 1;bla;3412;sha;1234;4321;28.15; ...

сравнение строк - C++
как сравнить строки на совпадающие? идея такая...есть исходная строка типа char вводим с клавы ещё одну строку и если эти 2 строки...


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

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

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