детский вопрос по Си
key <= 9
PS: а вообще lol
PS: а вообще lol
&& key >= 0
!

!

It depends. unsinged int always >= 0
уговорил
Сорри, описался.
if (Key == '0' || Key == '1' || Key == '2' || Key == '3' || Key == '4' || Key == '5' || Key == '6' || Key == '7' || Key == '8' || Key == '9')
{
}
понятно, что можно сделать что-то вроде
if (Key > аски-код(0) && Key < аски-код(9) )
{
} или в таком духе
Инетерсовало нету ли случайно чего-нить в духе паскалевского IN
if (Key == '0' || Key == '1' || Key == '2' || Key == '3' || Key == '4' || Key == '5' || Key == '6' || Key == '7' || Key == '8' || Key == '9')
{
}
понятно, что можно сделать что-то вроде
if (Key > аски-код(0) && Key < аски-код(9) )
{
} или в таком духе
Инетерсовало нету ли случайно чего-нить в духе паскалевского IN
if ( isdigit( key ) )

Там не обязательно число может быть. Может стоять произвольный набор символов.
if (Key > аски-код(0) && Key < аски-код(9) )А вот за такое убивать надо
{
}
Не единым ASCII жив человек.AnsiString Symbols = "набор символов"
if(Symbols.Pos(символ)!=0)
полагаю так. Хотя новую перемнную вводить... тоже не хочется
if(Symbols.Pos(символ)!=0)
полагаю так. Хотя новую перемнную вводить... тоже не хочется
мама, что такое AnsiString?
это Borland?
это Borland?
как объявлена переменная Key? с этого нужно было начинать.
Инетерсовало нету ли случайно чего-нить в духе паскалевского INВсе-таки на вопрос мой так и не ответили.
Я не мама
Борланд.
Борланд.предположим char Key
ну вот и сделай через .Pos(...) 

char a[10]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
int i;
for(i=0; i<10; i ) if(yourchar == a[ i ]) break;
if(i == 10) printf("Не принадлежит");
Кто страшнее?
int i;
for(i=0; i<10; i ) if(yourchar == a[ i ]) break;
if(i == 10) printf("Не принадлежит");
Кто страшнее?

ну вот и сделай через .Pos(...)Не.. уж лучше тогда будет как есть
char a[10]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
int i;
for(i=0; i<10; i ) if(yourchar == a[ i ]) break;
if(i == 10) printf("Не принадлежит");
Кто страшнее?
ладно... проехали.
char[] chars = {'0', '1', '2', '3', ..};
const int chars_count = sizeof(chars)/sizeof(chars[0]);
if (std::find(chars, chars chars_count, Key) != chars chars_count)
{
}
> if (std::find(chars, chars chars_count, Key) != chars chars_count)
Ты вообще можешь забыть о плюсах, когда речь о Це?
Ты вообще можешь забыть о плюсах, когда речь о Це?
просто он предлагает забыть о С 

Если для тебя скорость не критична, то можно сделать цикл. Можно сделать как есть, только отформатировать. Можно написать:
switch (Key) {
case '1':
case '2':
case '3':
case '4':
жопа
default:
жопа2
}
> просто он предлагает забыть о С
Модератор должен подавать пример соблюдения правил раздела.
Модератор должен подавать пример соблюдения правил раздела.
НАРОД! Вы ушли от темы! Посмотрите на вопрос:
if (Key in ('1','2', ...)
{
}
По ходу ничего такого нету в сях. Ну нету и не надо! Оставлю как есть! У меня эта конструкция встречается в двух местах всего! Просто немного мозолило глаз. А писать МЕГА-классы для этого дела или пользовать свитчом можно конечно, но имеет ли смысл в данной конкретной задаче?!
Конструкцию типаОтвет предполагался что-то вроде:
if (Key == 0 || Key == 1 || Key == 2 || Key == 3 || Key == 4 || Key == 5 || Key == 6 || Key == 7 || Key == 8 || Key == 9)
{
}
заменить на что-нить более компактное?
if (Key in ('1','2', ...)
{
}
По ходу ничего такого нету в сях. Ну нету и не надо! Оставлю как есть! У меня эта конструкция встречается в двух местах всего! Просто немного мозолило глаз. А писать МЕГА-классы для этого дела или пользовать свитчом можно конечно, но имеет ли смысл в данной конкретной задаче?!

ну напиши одну функцию, которая берет произвольное число параметров и смотрит первый в остальных
отцы С, как такое пишется (я уже и забыл как такое делается
)
отцы С, как такое пишется (я уже и забыл как такое делается
)Именно такое написать нельзя, т.к. функция не будет знать, где ей остановиться 

ок, в конце какой-нибудь 0 или -1
будет знать, если в первом параметре указать сколько их (см printf) и списки аргументов
может массив и передавать?
может массив и передавать?
если в первом параметре указать сколько ихИ ты сам их будешь пальцем считать?
А ошибиться не боишься? Проверить-то тебя некокому будет, устанешь отлаживаться... Уж лучше -1, как Димыч советует, хотя тоже лажа, что -1 никогда не нужен что ли...да нормально printf работает. -1 с такимже успехом можно забыть отправить. и с такими же последствиями
от всего страховаться программу не напишешь, не думаю, что в С есть адекватные средства решения этой проблемы,
не думаю что в OOP языках можно решить эту проблему без сильной потери производительности
З.Ы. те же яйца вид сверху.
З.З.Ы. ни кто не гарантирует, что твоей функции вдруг не придет случайный набор байтов в качестве пареметров (если планка памяти, напр. глючит)
от всего страховаться программу не напишешь, не думаю, что в С есть адекватные средства решения этой проблемы,
не думаю что в OOP языках можно решить эту проблему без сильной потери производительности
З.Ы. те же яйца вид сверху.
З.З.Ы. ни кто не гарантирует, что твоей функции вдруг не придет случайный набор байтов в качестве пареметров (если планка памяти, напр. глючит)
Так вроде в С есть штатный метод передачи произвольного числа параметров (va_arg)...
У Подбельского он описан, если надо - вечером запощу.
У Подбельского он описан, если надо - вечером запощу.
в библиотеки string.h есть метод, который ищет аргумент в строке. Уже не помню какой... поищи найдешь. Есть точно!(сам пользовался).
в библиотеки string.h есть метод, который ищет аргумент в строке. Уже не помню какой... поищи найдешь. Есть точно!(сам пользовался).Уже было -
AnsiString Symbols = "набор символов"
if(Symbols.Pos(символ)!=0)
полагаю так. Хотя новую перемнную вводить... тоже не хочется
млин... не удержусь...
Изврасченцы!
1) Если нужно проверить, что символ принадлежит некоторому "интервалу":
if(c>='a' && c<='z')
...
Годится в случае любого "нормального" (выражусь: ANSI-совместимого) компилятора.
2) switch, если нужно проверить, что символ принадлежит некоторому фиксированному множеству, но не проходит первый пункт
3) Функция с сигнатурой
int f(int length, char* validSymbolsString если множество символов на этапе компиляции неизвестно.
P.S. Иногда, конечно, могут потребоваться какие-то более витиеватые конструкции... Но явно не автору треда.
P.P.S. А вообще заведение подобного треда, равно как и ответы в нем (особенно функции с переменным числом параметров
) должны караться месяцем исправительно-трудовых работ на жабе (java) imho 
Изврасченцы!
1) Если нужно проверить, что символ принадлежит некоторому "интервалу":
if(c>='a' && c<='z')
...
Годится в случае любого "нормального" (выражусь: ANSI-совместимого) компилятора.
2) switch, если нужно проверить, что символ принадлежит некоторому фиксированному множеству, но не проходит первый пункт
3) Функция с сигнатурой
int f(int length, char* validSymbolsString если множество символов на этапе компиляции неизвестно.
P.S. Иногда, конечно, могут потребоваться какие-то более витиеватые конструкции... Но явно не автору треда.
P.P.S. А вообще заведение подобного треда, равно как и ответы в нем (особенно функции с переменным числом параметров
) должны караться месяцем исправительно-трудовых работ на жабе (java) imho 
Блин. Еще один. Ты тред-то вообще прочел? А конкретно посты:
Как же меня заебали всезнайки, которые даже не удосуживаются просмотреть тред...
PS: предлагаю за непросмотр треда перед ответом банить на неделю.
Как же меня заебали всезнайки, которые даже не удосуживаются просмотреть тред...
PS: предлагаю за непросмотр треда перед ответом банить на неделю.
switch (Key) {
case '1':
case '2':
case '3':
case '4':
жопа
default:
жопа2
}
После первой жопы нужен break (?)

да, иначе будет выполняться и "жопа2".
Ты тред-то вообще прочел? А конкретно посты.Конечно прочел. Если бы не прочел, то везде примеры кода бы вставил. Если угодно, это была краткая выжимка правильных (imho) ответов. Особенно по третьему пункту (при прочих равных выберу передачу динамического массива char *, а не функцию с переменным числом параметров...) Иначе человеку, задавшему _такой_ вопрос, просто не отличить зерна от плевел.
PS. Остальные замечания оставлю без комментариев как не соответсвующие теме треда. Если есть желание повыяснять со мной отношения, то прошу проследовать в приват.
А может там предполагается, что break в самой "жопе" будет.
P.S. Не бейте за код, я на сях редко пишу
char s[]="1234567890";//или что угодно размера n штук по 8 бит
char set[32];
for(int i=0;i<32;i++)set[i]=0;
i=0;
while(s[i]!=0)
{
set[s[i]>>3] = (set[s[i]>>3]) | (1<<(s[i]&0x7;
i++;
}//заполнили типа паскаля множество
//проверяем:
if( (set[Key>>3])& (1<<(Key&0x7
{
то, что нужно
}

Оставить комментарий
Slavaga
Конструкцию типаif (Key == 0 || Key == 1 || Key == 2 || Key == 3 || Key == 4 || Key == 5 || Key == 6 || Key == 7 || Key == 8 || Key == 9)
{
}
заменить на что-нить более компактное?