Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
14 / 14 / 3
Регистрация: 16.04.2013
Сообщений: 404
1

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

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

Author24 — интернет-сервис помощи студентам
Добрый вечер.
Пользователь должен ввести слово которое находиться в инструкции 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;
}
Подскажите что не так?
Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2014, 22:27
Ответы с готовыми решениями:

Сравнение строк
MrGluck, не знаю: if ( strcmp( c1, c2 ) &lt; 0 ) // правильное сравнение printf( &quot;And it was...

Сравнение строк
Помогите написать программу,на С++, которая сравнивает две строки игнорируя различия в регистрах,не...

Сравнение строк
Объясните пожалуйста по какому способу строки сравниваются? А то я сравнивал так и не понял в чем...

Сравнение строк
Доброго времени суток! Имеется задачка: для двух заданных строк символов вывести без повторений...

8
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
22.03.2014, 22:38 2
C++
1
a == "Малыха"
сравнение адресов!

используйте, например strcmp
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
23.03.2014, 15:30 3
Цитата Сообщение от kirill1059 Посмотреть сообщение
Кто в группе лох?
Цитата Сообщение от kirill1059 Посмотреть сообщение
Малыха
Если Малыха - реальный человек, эти конструкции на весь интернет Вас не красят
2
14 / 14 / 3
Регистрация: 16.04.2013
Сообщений: 404
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;
}
0
1568 / 1447 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
24.03.2014, 01:24 5
Лучший ответ Сообщение было отмечено kirill1059 как решение

Решение

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;
}
2
14 / 14 / 3
Регистрация: 16.04.2013
Сообщений: 404
24.03.2014, 11:19  [ТС] 6
edward_freedom, хм, спасибо большое)
получается не нужно было делать отступ между восклицательным знаком и знаком равно?)
Не подскажите где про это почитать и почему это считается за ошибку?
0
Модератор
Эксперт С++
13505 / 10756 / 6411
Регистрация: 18.12.2011
Сообщений: 28,711
24.03.2014, 12:47 7
! - логическое отрицание
== - проверка на равенство
!= - проверка на неравенство
= - присваивание
0
14 / 14 / 3
Регистрация: 16.04.2013
Сообщений: 404
24.03.2014, 12:52  [ТС] 8
zss, Спасибо, но я это знал.
Просто пробел между восклицательным знаком и знаком равно посчитался за ошибку
0
Модератор
Эксперт С++
13505 / 10756 / 6411
Регистрация: 18.12.2011
Сообщений: 28,711
24.03.2014, 13:05 9
Цитата Сообщение от kirill1059 Посмотреть сообщение
пробел между восклицательным знаком и знаком равно посчитался за ошибку
Я имел ввиду, что Вы написали 2 отдельных операции: отрицание и присваивание,
точно также, если написать < < - то это 2 операции сравнения на "меньше".
0
24.03.2014, 13:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2014, 13:05
Помогаю со студенческими работами здесь

сравнение строк
Подскажите как сравнить std::string и char *array ? может нужно преобразовать к одному типу сперва...

Сравнение строк
#include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; #include &lt;string&gt;...

Сравнение 2-х строк S и s
Заданы две строки S и s. Определить, является ли строка s префиксом, суффиксом, и тем, и другим или...

Сравнение строк
У меня передаётся параметр при запуске через командную строку *argv, и сравнивается с уже заданным...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru