Выравнивание с правой стороны, с учётом терминатора '\0' и стандартное копирование.
void FastStrCpy(const uint8_t * Src, uint8_t * Dst, uint8_t SizeOfDst, Text_AlignModeTypdef Direction){ // Direction is 0 = default(LEFT one), 1 = // MAXSTRINGLENGTH is compare with max index
uint8_t i = 0;
uint8_t length = 0;
switch (Direction){
case LEFT_MODE: // for(i = 0; i < SizeOfDst; i++){
if(*Src != '\0' ) *Dst++ = *Src++;
else {*Dst='\0'; break;}
} break;
case RIGHT_MODE:
while(Src[i++])length++;
for(i = 1; i < length+1 ; i++) // the lastest symbol is '\0'
Dst[SizeOfDst-i-1] = Src[length-i]; //:) break;
}
}