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

Не работает условие с указателем - C++

Восстановить пароль Регистрация
 
Mr.ILLUMINOR
 Аватар для Mr.ILLUMINOR
4 / 4 / 0
Регистрация: 13.04.2012
Сообщений: 37
06.01.2013, 14:30     Не работает условие с указателем #1
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
#include <iostream>;
#include <windows.h>;
using namespace std;
int main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    char *array[][2] = {
        "Домен", "Допустимое потенциальное, ограниченное подмножество значений данного типа.",
        "Хостинг", "Услуга по предоставлению вычислительных мощностей для физического размещения информации на сервере, постоянно находящемся в сети (обычно Интернет).",
        "Сервер", "Аппаратное обеспечение, выделенное и/или специализированное для выполнения на нем сервисного программного обеспечения (в том числе серверов тех или иных задач).",
        "Сайт", "Совокупность электронных документов (файлов) частного лица или организации в компьютерной сети, объединённых под одним адресом (доменным именем или IP-адресом).",
        "", ""
    }, word[20];
    int i;
    cout << "Введите искомое слово: ";
    cin >> word;
    for (i=0;*array[i][0];i++)
    {
        if(!strcmp(array[i][0], word))
        {
            cout << word << " - это " << array[i][1] << "\n";
            break;
        }
        if (!*array[i][0])
        {
            cout << "Ничего не найдено\n";
        }
    }
    system("pause");
    return(0);
}
26-29 строчки не работают. Почему? http://smotr.im/aLOa
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
06.01.2013, 14:37     Не работает условие с указателем #2
Почему ты думаешь, что за границами твоего массива память заполнена нулями? Этого никто не обещает.
А строчка эта и не может выполниться когда-либо, так как ее условие аналогично условию выхода из цикла, управление до этого места просто не доходит.
Mr.ILLUMINOR
 Аватар для Mr.ILLUMINOR
4 / 4 / 0
Регистрация: 13.04.2012
Сообщений: 37
06.01.2013, 14:43  [ТС]     Не работает условие с указателем #3
Герц, разве пустая строка не содержит завершающий ноль?
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
06.01.2013, 14:46     Не работает условие с указателем #4
Ах, так у тебя в массиве пустая строка лежит. Тогда да, такое условие верно. Почему не выводится строчка - я уже написал. У тебя выход из цикла происходит раньше, чем управление доходит до этой строчки.
Mr.ILLUMINOR
 Аватар для Mr.ILLUMINOR
4 / 4 / 0
Регистрация: 13.04.2012
Сообщений: 37
06.01.2013, 14:59  [ТС]     Не работает условие с указателем #5
Герц, а разве break не должен выполняться только при условии, если if(!strcmp(array[i][0], word)) истинно?
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
06.01.2013, 15:02     Не работает условие с указателем #6
for (i=0;*array[i][0];i++)
Условие нахождения в цикле выделено полужирным.
Yandex
Объявления
06.01.2013, 15:02     Не работает условие с указателем
Ответ Создать тему
Опции темы

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