- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
bool IsBukva(char symbol)
{
switch(symbol)
{
case'a':return 1;break;
case'b':return 1;break;
case'c':return 1;break;
case'd':return 1;break;
case'e':return 1;break;
case'f':return 1;break;
case'g':return 1;break;
case'h':return 1;break;
case'i':return 1;break;
case'j':return 1;break;
case'k':return 1;break;
case'l':return 1;break;
case'm':return 1;break;
case'n':return 1;break;
case'o':return 1;break;
case'p':return 1;break;
case'q':return 1;break;
case'r':return 1;break;
case's':return 1;break;
case't':return 1;break;
case'u':return 1;break;
case'v':return 1;break;
case'w':return 1;break;
case'x':return 1;break;
case'y':return 1;break;
case'z':return 1;break;
case'A':return 1;break;
case'B':return 1;break;
case'C':return 1;break;
case'D':return 1;break;
case'E':return 1;break;
case'F':return 1;break;
case'G':return 1;break;
case'H':return 1;break;
case'I':return 1;break;
case'J':return 1;break;
case'K':return 1;break;
case'L':return 1;break;
case'M':return 1;break;
case'N':return 1;break;
case'O':return 1;break;
case'P':return 1;break;
case'Q':return 1;break;
case'R':return 1;break;
case'S':return 1;break;
case'T':return 1;break;
case'U':return 1;break;
case'V':return 1;break;
case'W':return 1;break;
case'X':return 1;break;
case'Y':return 1;break;
case'Z':return 1;break;
default:return 0;
}
}
Женский вариант проверки символа на букву.
Оригинал тут: http://forum.vingrad.ru/forum/topic-240593.html
Мощьно. Интересно посмотреть этот код в асме. :)
мощно*
уахахахах
А если надо проверить, является ли символ иероглифом, также будут писать?
в чар иероглиф не лезет, так что всё нормально :)
[quote=1]Интересно посмотреть этот код в асме. :) [/quote]
MSVC8, x68:
Честно говоря ожидал лучше (без таблицы).
он не женский, он китайский.7
len = input.length();
for (i=0;i<len;i++)
а вообще чемпион по скорости:
len = input.length();
while(lin--)
while(input++)
{
...
}
jit увидит что мы бегаем по циклу и вынесет проверку на выход за границы из тела цикла, а если кешировать длину массива, в каждой итерации цикла будет происходить та самая проверка
Совершенно непонятно как введение временной переменной мешает увидеть jitу что мы бегаем по циклу.
>а если кешировать длину массива, в каждой итерации цикла будет происходить та самая проверка
Пруфы?
Тесты на jsperf показывали обратное. Жава тоже дуплит и выпиливает условия, если может на входе в цикл доказать что он проходит в границах массива.
Мне кажется тут не то что джит -- тут компилятор их примерно в одно склеет
> в тяжелых циклах
Он написал "приложения". Очевидно, что от сахара пострадают в первую очередь легкие циклы.
Ну что за даун?..
А где break после default'а? Выбивается из общего стиля!
Регулярочку например на email-проверку в подобном стиле представьте)))
Помнится на первом курсе у нас не только прекрасная часть группы так выкручивалась
В дестве такое писал ....
Это скорее ява, или до диез, чар двухбайтовый, лезут туда иероглифы
Обидно блин. чо сразу женский то? протестую!
Да, в школе не учились, с неравенствами не знакомы и ASCI кодами тоже)) Но то, что после return стоит break(!!!???) - это убойно!)
[quote=Звездочет]Да, в школе не учились, с неравенствами не знакомы и ASCI кодами тоже)) Но то, что после return стоит break(!!!???) - это убойно!)[/quote]
Какие в жопу ASCII коды?
=~ /[A-Zaz]/
=~ /[A-Za-z]/
дефисенг пропустил.
парам-пам-пам
(ессно это кучек,даже не до конца строки)
так моя жена не первая?
Нет, даже так:
char alphabet[] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
int count = sizeof(alphabet);
char * p = alphabet;
for (int i = 0; i < count; i++, p++)
{
if (symbol == *p)
return 1;
}
Мозг у некоторых интересно работает: человек может знать всего страуструпа, уметь всем этим пользоваться и при этом вот такие алкоритмы выдавать.
Ещё можно расставить буквы в грамотном порядке, с учётом вероятности их использования(с учётом перебора методом ПД).
Золотой костыль получается
> символы могут быть разбросаны по всей таблице, если это не ASCII
is there logic?
P.S.
1. #include <ctype>
2. int isalpha(int c);
3. ...
4. PROFIT!
1. #include <locale>
2. use template <class charT> bool isalpha (charT c, const locale& loc);
3. ...
4. PROFIT^2!
—– Я некропедозооорнитотаксидермист.
if (bukva==0) {return 0;}
else if (bukva==1) {return 0;}
...
else if (bukva==97) {return 1;}
...
...
...
Откуда в людях столько трудолюбия и упорства берется? Мне проще написать прогу, которая сгенерирует такую хрень, чем писать это. Код улыбнул.
чувак написал что скоппиздил этот "код" у одногруппницы, которая его написала
позор ему!!
Вор должен сидеть в тюрьме.
чуть не помер, ахахахахаха
Задолбали уже! Хватит дискриминации по половому признаку!
Или требую под каждым говнокодом писать "Мужской вариант бла-бла-бла!"
*Ушла кодить, ненавижу мужиков, люблю кампутеры!*
ну тогда все понятно
bool is_latin(char symbol)
{
if (symbol >= 'A' && symbol <= 'Z')
return true;
return false;
}
А так -
bool is_latin(char symbol)
{
if ((symbol >= 'a' && symbol <= 'z') || (symbol >= 'A' && symbol <= 'Z'))
return true;
return false;
}
ну или на крайний,
bool is_letter (char symbol)
{
return !isdigit((int)symbol);
}
bool is_letter (char symbol)
{
return !isdigit(symbol);
}
bool char_IsLatin(wchar_t c)
{
return (c >= L'a' && c <= L'z') || (c >= L'A' && c <= L'Z');
}
bool char_IsDigit(wchar_t c)
{
return (c >= L'0' && c <= L'9');
}
if (...) return true;
return false;
:)
всё-таки тип bool и придумали, чтобы сразу писать
return (...);
;)
На самом же деле первый вариант никакой опасности не таит, он просто длиннее. Заменить на это:
Именно поэтому я пасцал.
isLatinW('ф') == 1;
Именно поэтому я против «Юникода».
Питух ты анскильный, матчасть иди учи. Твой говно интерпретатор и не такую питушню может выдать, питух ты глупенький.
Не один вменяемый человек этим говном не воспользуется.
царь вернулся
1. Создание ренджа
2. Создание ренджа
3. Создание массива
4. Создание лямды
5. Вызов метода any
6. Итереция по массиву и вызов лямды на каждой итереции
bool isZifra(char c) {return false;}
вот как надо
Для заглавных аналогично.
На правах офтопика:
http://bibla.ru/files/book_covers/9696.jpg
А вот дилда доступна только в длинном 64-битном режиме.
Юникодовская "Ё" даже в чар не влезет. Хотя может и есть платформы где sizeof(char) >= 2...
А с однобитовыми кодировками особой разницы нет, какой там символ.
Во что превратится буква «Ё», зависит от того как она представлена в исходнике. Если прямо вот так буквой, результат зависит от кодировки исходника и от параметров, с которыми вызван компилятор (ему нужно указать какую кодировку ты используешь). Например, для «UTF-8» нужно вызывать «gcc» с параметром -finput-charset=UTF-8 (при этом из исходника нужно удалить BOM). Да, при использовании «Unicode» придётся перейти с char на wchar_t.
Есть ещё безопасный способ записи нелатинских символов. Например, "Ё" можно записать как "\u0401", тогда будет плевать на то, в какой кодировке исходник.
Кстати, в «Паскале» при использовании диапазонов (например, 'A'..'Z') тоже будет «анролл».
какой сиплюсплюс
?
какой сексизм
Там, отдав главу одной благочестивой женщине по имени Катулла, из римской знати, оно пало на землю