Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 19.03.2018
Сообщений: 14
1

Неправильно выполняется операция сравнения

26.03.2018, 16:31. Показов 485. Ответов 3
Метки нет (Все метки)

Программа изначально не видела русский язык, но с этим я, вроде как, разобрался. Дальше встала проблема - программа делает первое же условие выполненным, от чего программа не выполняется должным образом. Вроде, прогу написал правильно, она должна найти последовательность "он" или "но" до первого восклицательного знака. Но вот чот не работает.
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 "stdafx.h"
#include <string.h>
#include <iostream>
#include <io.h>
#include <fcntl.h>
#include <cstdio>
#include <clocale>
#include "windows.h"
using namespace std;
 
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char str[100]; int i, c;
    while (1) {
        cout << "В введённой строке найти пару 'но' или 'он' до первого восклицательного знака \n";
        cout << "Введите строку: ";
        gets_s(str);
        puts(str);
        for (i = 0; i <= strlen(str); i++) {
            c = i + 1;
            if (str[i] = '!') {
                cout << "'он' и 'но' не найдены"; break;
            };
            if ((str[i] = 'о') && (str[c] = 'н')) { cout << "Последовательность'он' найдена"; break; };
            if ((str[i] = 'н') && (str[c] = 'о')) { cout << "Последовательность'но' найдена"; break; };
        }
        cout << "Продолжить работу? (Y/N) - ";
        char otv;
        cin >> otv;
        if (otv == 'N' || otv == 'n')break;
    }
    cout << "Программу выполнил студент группы 22П Дергачев Денис \n";
    system("pause");
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2018, 16:31
Ответы с готовыми решениями:

Операция сравнения
введите с клавиатуры a, b. Выведите на экран числа a, b с соответствующим знаком операции сравнения...

Длинная арифметика: операция сравнения двух чисел (A >= B)
Привет всем! помогите пожалуйста кодом. Необходимо реализовать операцию сравнения двух длинных...

Что быстрее, операция присваивания или сравнения?
Всем доброго времени суток, такой вод у меня дурацкий вопрос сидит в голове, &quot;Что быстрее, операция...

Операция сравнения пошла не так, как хотелось бы
Пользователь вводит значения, сохраняющиеся в класс Product; программа запрашивает слово для поиска...

3
470 / 422 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
26.03.2018, 16:38 2
C++
1
if (str[i] = '!')
И ему же подобные заменить на
C++
1
if (str[i] == '!')
Условие равенства оператор ==
1
1 / 1 / 0
Регистрация: 19.03.2018
Сообщений: 14
26.03.2018, 16:58  [ТС] 3
SuperKir, бож, я опять забыл о том, что равенство в два равно. Благодарствую, милорд.
0
Модератор
Эксперт С++
10530 / 8752 / 5293
Регистрация: 18.12.2011
Сообщений: 23,413
26.03.2018, 17:26 4
Цитата Сообщение от SirDeLis Посмотреть сообщение
C++
1
2
3
for (i = 0; i <= strlen(str); i++) 
{ 
   c = i + 1;
Последний символ строки имеет индекс strlen(str)-1,
терминальный нуль расположен в ячейке strlen(str).
А у Вас переменная 'с' при i=strlen(str) будет равна strlen(str)+1
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2018, 17:26

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Операция сравнения нескольких объектов с несколькими видами характеристик
Здравствуйте! Не могли бы вы мне помочь? Мне нужно вывести ноутбук с наибольшей диагональю при этом...

Не выполняется алгебраическая операция
Привет всем. Помогите найти ошибку. Описывать само задание проги не буду, напишу вкратце. Вводим...

Не выполняется условие сравнения строк с номером телефона
Вот программа через структуру, ввод данных: Фамилия Имя, дата рождения, номер телефона. Когда...

Неправильно выполняется цикл do while
Есть код: #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main(){...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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