arr.filter(n => n % 10 === 4)
// или
arr.filter(n => ''.endsWith.call(n, 4))
// или
arr.filter(n => `${n}`.slice(-1) === '4')
// или
arr.filter(n => /4$/.test(n))
// или
(`${arr}`.match(/\d*4(?=\D|$)/g) || []).map(Number)
get_substr("один", "два три четыре")
, ты в функцию передаешь два строковых литерала, тип которых - const char[ N ]
, где N
- это длина строки литерала включая терминальный символ '\0'
.const char*
в char*
недопустимо, поэтому компилятор и пишет тебе ошибку.char*
вообще не нужен, т.к. полностью все операции у тебя не приводят к изменению состояния строки. Заменить char*
на const char*
будет и логичнее, и понимаемость кода тоже улучшит. debug
и принимает аргумент, но вне отладочной конфигурации он этим аргументом не оперирует. В любом месте обращения к твоему макросу произойдет подстановка NULL
вместо всего обращения.NULL
в качестве подстановки не нужен. Зачем тебе в коде программы обилие висящих NULL
? Если описать макрос так:#ifdef DEBUG
#define debug(n) Serial.println("***"+String(n)+"***")
#else
#define debug(n)
#endif
#include "CImg.h"
и используете.from PIL import Image
import math
import sys
way = '1.png'
print sys.argv[1]
way = sys.argv[1]
image = Image.open(way)
width = image.size[0]
height = image.size[1]
alpha = image.getpixel((2,2))
left = width
right = 0
top = height
bottom = 0
print str(alpha)
for x in range(width):
for y in range(height):
rng = math.sqrt(math.pow(image.getpixel((x,y))[0]-alpha[0],2)+math.pow(image.getpixel((x,y))[1]-alpha[1],2)+math.pow(image.getpixel((x,y))[2]-alpha[2],2))
#print str(rng)
if rng > 89:
if x<left:
left = x
if x>right:
right = x
if y<top:
top = y
if y>bottom:
bottom = y
print str(left)+ ','+str(top)+' '+str(right)+','+str(bottom)
width = right-left
height = bottom-top
img = Image.new("RGBA", (width,height), (0,0,0,0))
for x in range(width):
for y in range(height):
img.putpixel((x,y),image.getpixel((x+left,y+top)))
img.save("test1.png", "PNG")
print "Done!"
В общем выравниваются в памяти поля по границе кратной своему же размеру. То есть 1-байтовые поля не выравниваются, 2-байтовые — выравниваются на чётные позиции, 4-байтовые — на позиции кратные четырём и т.д.