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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2008, 15:33   #21
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от sasha45 Посмотреть сообщение
*********
*********
Можно как-нибудь в двух слова про это? Это создание пользовательского типа? или я что-то путаю?
Если Вы, например, про
Код:
typedef struct _WORD_DESCRIPTOR  
{ 
    LPTSTR              pWord; 
    LONG                nWordLen; 
}WORD_DESCRIPTOR, *LPWORD_DESCRIPTOR;
то - да. Я определяю два типа - структуру и указатель на нее и впоследствии могу пользоваться ими как обычными long'ами или char'ами, например, уже определяя тип - WORDS, я пишу в структуре переменную нового типа, а потом определяю глобальную переменную уже следующего типа - WORDS или функции, которые берут указатели на такие переменные.
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 15:34   #22
sasha45
Пользователь
 
Регистрация: 29.01.2008
Сообщений: 19
По умолчанию

А без этой структуры нельзя обойтись? Например создав два массива и работая как-нибудь с ними.
sasha45 вне форума Ответить с цитированием
Старый 30.01.2008, 15:41   #23
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Вообще говоря - можно, во втором примере я обошелся без них, но если делать что-то большое, то мы в конечном счете запутаемся, к тому е большинство данных так или иначе подразумевают какую-то внутреннюю структуру, скажем очень неудобно будет ворочать датой и временем в виде горы бессвязных лонгов, а в виде структуры это вполне очевидно и просто.
Код:
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 16:15   #24
sasha45
Пользователь
 
Регистрация: 29.01.2008
Сообщений: 19
По умолчанию

Вот в этом-то как раз и заключается моя проблема. Нашей группе достался препод, который не ищет легких путей. Я уже приносил ей функцию обработки строки, в которой присутствовала структура. Так меня мягко говоря послали, сказав, что мы структуры еще не проходили, поэтому иди домой и переделывай. Наша преподша вообще какая-то странная, она запрещает нам использовать операторы break и goto. Она говорит чтобы мы всегда следовали правилам структурного программирования.

Я вижу, что через структуры делать лекго, но все-таки нужно обойтись без них(( Как это можно сделать? И если не создавать свои собственные типы? Просто, в функцию передается строка, и уже в ней как-то с ней работать.
sasha45 вне форума Ответить с цитированием
Старый 30.01.2008, 16:41   #25
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от sasha45 Посмотреть сообщение
Наша преподша вообще какая-то странная, она запрещает нам использовать операторы break и goto.
Она приучает к стилю. goto вообще очень не рекомендуется использовать, получаются крайне нечитаемые и сложно отлаживаемые вещи, break нужно использовать с умом, понимая, что делаешь, а не пытаясь "заставить работать". Так что она совершенно права. Сначала нужно приучить к стилю и пониманию того, как всё это происходит, Вы сами говорите, что только начали язык изучать. С язык совсем не простой, но в награду за свою сложность он предоставляет абсолютно недостижимую для других языков гибкость. А оператор goto, строго говоря, иногда приходится использовать (а break или continue - постоянно!), когда, например очевидно, что без них придется крайне перегружать текст сложными условными конструкциями.

Да, еще, Вы пишете:
Цитата:
Я вижу, что через структуры делать лекго, но все-таки нужно обойтись без них(( Как это можно сделать? И если не создавать свои собственные типы? Просто, в функцию передается строка, и уже в ней как-то с ней работать.
Так ведь у меня во втором варианте нет структур
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 17:11   #26
sasha45
Пользователь
 
Регистрация: 29.01.2008
Сообщений: 19
По умолчанию

Ой точно=) Что-то меня переклинило=)
А вот создания пользовательского типа обязательно? А еще я читал в учебнике что вот здесь:

Код:
# // statics  
# static long nWordCount = 0;  
# static char** pWords = NULL;
static же можно убрать?
sasha45 вне форума Ответить с цитированием
Старый 30.01.2008, 17:17   #27
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
А вот создания пользовательского типа обязательно?
Почему обязательно? Если нужен тип - определяем, если не нужен - не определяем

Цитата:
static же можно убрать?
Здесь в принципе можно, static на глобальную переменную ограничивает ее видимость данным файлом, ну Вы же читали
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 17:21   #28
sasha45
Пользователь
 
Регистрация: 29.01.2008
Сообщений: 19
По умолчанию

Спасибо большое=) А можете теперь подсказать, как вашу запись можно добавить в мою программу, т.е. обработку строки?
Какая последовательность действий? Ввод текста осуществлен. Теперь нужно провести его обработку. Что нужно сделать сначала? Вызвать функцию разделения слов?
sasha45 вне форума Ответить с цитированием
Старый 30.01.2008, 17:27   #29
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Что нужно сделать сначала? Вызвать функцию разделения слов?
Ну да. Вы же видите, что она берет аргументом указатель на строку.
B_N вне форума Ответить с цитированием
Старый 30.01.2008, 17:44   #30
sasha45
Пользователь
 
Регистрация: 29.01.2008
Сообщений: 19
По умолчанию

1. SplitString(char*pSourse)
2. AddWord(char *pword, long nWordlen)
3. IsDelimiter(char cDelimiter)

Так получается?
sasha45 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дан текстовый массив из 200 букв. Выстроить в алфавитном порядке все строчные буквы Тина Помощь студентам 6 02.07.2008 22:53
отсортировать таблицу сначала в алфавитном порядке фамилий продавцов, затем в порядке возростания получен Lora Microsoft Office Excel 1 31.05.2008 17:22
Во вводимом тексте переписать все слова в обратном порядке. menlo Помощь студентам 5 17.11.2007 10:18