Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 19:03   #1
Golovastik
Заблокирован
 
Регистрация: 25.05.2009
Сообщений: 284
Плохо Масив указателей

Вот,продолжаю изучать тему массивы указателей. В качестве примера, почти уже на последних страницах приводится задачка с использованием указателей в 2-мерных массивах. Набрал программу, вижу что программа не выводит русские слова по запросу,решил её изменить. Вот как получилось, программу,только начинаю разбирать,что к чему, пока не до конца въезжаю в неё. Программа вроде компилируется но работает не правильно. Не скажите, где не правильно написано.

Код:
#include <iostream>
#include  <windows.h>
#include <cstring>
using namespace std;

char b[256];
char *solution(const char *f)
{
CharToOem(f,b);
return b;
}


int main()
{
    setlocale(0,"");
    char *dictionary[][2] = {
    "карандаш","Инструмент для писания",
    "клавиатура", "устройство ввода данных",
    "винтовка","Огнестрельное оружие",
    "самолёт","Воздушное судно с неподвижным крылом",
    "сеть","Взаимосвязанная группа компьютеров",
    "", ""
    };
    char word[80];
    int i;
    cout<<"Введите слово: ";
    cin>>word;
    for(i = 0; *dictionary[i][0]; i++)
    {
        if(!strcmp(dictionary[i][0],word))
        {
            cout<<dictionary[i][1]<<'\n';
            break;
        }
    }
    if(!*dictionary[i][0])
        cout<<solution(word) << " не найдено.\n";
    cin.ignore();
    cin.get();
}
Изображения
Тип файла: jpg 2.jpg (11.7 Кб, 156 просмотров)
Golovastik вне форума Ответить с цитированием
Старый 09.09.2009, 19:12   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Вы не там использовали свою ф-цию solution.
Код:
  cout<<solution(word) << " не найдено.\n";
здесь её использовать не надо.
а здесь:
Код:
  if(!strcmp(dictionary[i][0],word))
надо:
Код:
  if(!strcmp(solution(dictionary[i][0]),word))
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива указателей Джед Общие вопросы C/C++ 3 02.06.2009 14:18
О сущности указателей... Alexcomeback Общие вопросы C/C++ 6 03.04.2009 19:17
массив указателей на методы класса? cout Общие вопросы C/C++ 2 08.05.2008 09:43
Массив указателей на структуры SNAKE89 Общие вопросы C/C++ 4 27.12.2007 10:14