- 1
- 2
- 3
if (preg_match('/'.preg_quote($subString).'/', $string)) {
...
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+4
if (preg_match('/'.preg_quote($subString).'/', $string)) {
...
}
Проверка, есть ли подстрока в строке.
Вроде, как минимум несколько лет человек в программировании на PHP.
Показывает опытность тем, что экранирует спецсимволы в регулярном выражении.
А можно было использовать простейшую функцию strpos().
−7
import re
def matrix():
square = [[0 for x in range(7)] for x in range(7)]
directions = ((1,0), (0,1), (-1,0), (0,-1))
x, y, d = -1, 0, 0
for i in range(49):
while True:
x1, y1 = x + directions[d][0], y + directions[d][1]
if x1 >= 0 and x1 < 7 and y1 >= 0 and y1 < 7 and square[y1][x1] == 0:
x, y = x1, y1
break
d = (d + 1) % 4
square[y][x] = re.sub(r'\d', lambda n: ' ' * int(n.group()), '9de9mb8nv5yo4aol1rm')[i]
return square
print('\n'.join([''.join(line) for line in matrix()]).strip())
по мативам http://govnokod.ru/23329#comment389918
0
#include <stdio.h>
typedef int (*FUNC)();
FUNC test (int a, int b){
int ret(){
return a + b;
}
return ret;
}
int main(){
printf("%i\n", test(40, 2)());
return 0;
}
/* Тоже самое на JS */
function test(a, b){
function ret(){
return a + b;
}
return ret;
}
alert(test(40, 2)());
# Тоже самое на Python
def test(a, b):
def ret():
return a + b
return ret
print test(40, 2)()
Странно работает компилятор, версия: gcc version 4.7.2
$ gcc 1.c && ./a.out
42
$ gcc -O3 1.c && ./a.out
Segmentation fault
0
https://github.com/catboost/catboost
Похоже яндекс заопенсорсил свежую версию аркадии. Давайте обсирать эти их велосипеды.
−1
static bool
do_convert(iconv_t cd, const char * src, int src_len,
char ** dst, int *dst_len)
{
char * ret;
char *inbuf;
char *outbuf;
int alloc_size;
int output_pos;
size_t inbytesleft;
size_t outbytesleft;
if(src_len < 0)
src_len = strlen(src);
#if 0
fprintf(stderr, "Converting:\n");
bgav_hexdump(src, src_len, 16);
#endif
alloc_size = src_len + BYTES_INCREMENT;
inbytesleft = src_len;
/* We reserve space here to add a final '\0' */
outbytesleft = alloc_size-1;
ret = malloc(alloc_size);
inbuf = (char *)src;
outbuf = ret;
while(1)
{
if(iconv(cd, (ICONV_CONST char **)&inbuf, &inbytesleft,
&outbuf, &outbytesleft) == (size_t)-1)
{
switch(errno)
{
case E2BIG:
output_pos = (int)(outbuf - ret);
alloc_size += BYTES_INCREMENT;
outbytesleft += BYTES_INCREMENT;
ret = realloc(ret, alloc_size);
if (ret == NULL)
{
cdio_warn("Can't realloc(%d).", alloc_size);
return false;
}
outbuf = ret + output_pos;
break;
default:
cdio_warn("Iconv failed: %s", strerror(errno));
if (ret != NULL)
free(ret);
return false;
break;
}
}
if(!inbytesleft)
break;
}
/* Zero terminate */
*outbuf = '\0';
/* Set return values */
*dst = ret;
if(dst_len)
*dst_len = (int)(outbuf - ret);
#if 0
fprintf(stderr, "Conversion done, src:\n");
bgav_hexdump(src, src_len, 16);
fprintf(stderr, "dst:\n");
bgav_hexdump((uint8_t*)(ret), (int)(outbuf - ret), 16);
#endif
return true;
}
https://github.com/pbatard/rufus/blob/edcfd43ed550b17f23f9534f4b3b5cdd7fffdefc/src/libcdio/driver/utf8.c#L170-L248
+1
def inputCountSeq():
try:
countSeq=int(input("Введите количество элементов в последовательности от 1 до 1000: \r >"))
except :
print("[Ошибка] Введенные вами данные неверны")
inputCountSeq()
if (countSeq > 1000 or countSeq < 1):
print("[Ошибка] Введенное число не соответствует указанному диапазону( 1 <= x <= 1000)")
inputCountSeq()
return countSeq
print(inputCountSeq())
Вводим -1 , получаем ошибку "Введенное число не соответствует указанному диапазону" ,после чего вводим 1 , а в возвращается все равно -1.
https://repl.it/IAMA/3
+5
ostringstream s;
...
- return s.str();
+ return std::move(s.str());
соптимизировано
−98
ЭтоДокумент = Метаданные.Документы.Содержит(ЭтотОбъект.Метаданные())
Примечательно, что вызывается из модуля формы документа, больше нигде процедура с ЭТИМ не используется.
В документе проверяем, что это документ :/
−99
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НоменклатурнаяГруппа", Объект.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Код,
| Номенклатура.Ссылка КАК Номенклатура
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.НоменклатурнаяГруппа.Ссылка = &НоменклатурнаяГруппа
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура";
ТаблицаТоваров = Запрос.Выполнить().Выгрузить();
СписокГруппы.Загрузить(ТаблицаТоваров);
БП 3.0.43.174 (но не только), типовое заполнение формы номенклатурной группы номенклатурой.
0
using Microsoft.VisualBasic.CompilerServices;
using System;
namespace ConsoleApplication2
{
[StandardModule]
internal sealed class Module1
{
[STAThread]
public static void Main()
{
label_0:
int num1;
int num2;
try
{
ProjectData.ClearProjectError();
num1 = 1;
label_1:
int num3 = 2;
Test.TTT();
goto label_8;
label_3:
num2 = num3;
switch (num1)
{
case 1:
int num4 = num2 + 1;
num2 = 0;
switch (num4)
{
case 1:
goto label_0;
case 2:
goto label_1;
case 3:
case 4:
goto label_8;
}
}
}
catch (Exception ex) when (ex is Exception & (uint) num1 > 0U & num2 == 0)
{
ProjectData.SetProjectError(ex);
goto label_3;
}
throw ProjectData.CreateProjectError(-2146828237);
label_8:
if (num2 == 0)
return;
ProjectData.ClearProjectError();
}
}
}
Вот какая жуть получилась при декомпиляции старого доброго On Error Resume Next из VB.
Исходный код:
Sub Main()
On Error Resume Next
TTT() 'определен в модуле Test
Exit Sub
End Sub