Я не понимаю, почему вы должны использовать strcpy вместо memcpy.Следующий код будет эффективным, так как для процессоров SSE2 / SSE3 он будет использовать инструкции SIMD.
len=strlen(b)-1;
memcpy(a,b+1,len)
Если длина уже известна
memcpy(a,b+1,40)
Если вы работаете с массивом
memcpy(a,b+1,sizeof(b)/sizeof(b[0])-1)
Если вы хотите более безопасный подход:
#define min(a,b) ((a) < (b)?(a):(b))
......
memcpy(a,b+1,min(sizeof(b)/sizeof(b[0])-1,sizeof(a)/sizeof(a[0])))