C语言实现的PadLeft,在str的左边使用bychar补齐为指定的长度
char * _padleft;
char * PadLeft(char bychar,char *str,int len )
{
char *tmpxx;//
echoic("char bychar %c,char *str %s ,int len %d ", bychar, str, len );
_padleft=(char *)malloc(len+1);
tmpxx=(char *)malloc(len*2+1);
memset(_padleft,0x00,len+1);
memset(tmpxx,bychar,len*2);//把tmpxx使用bychar初始化。
tmpxx[len*2+1]=0;
if (strlen(str)>0)//如果大于0才处理,否则直接去复制指定个数的tmpxx
{
memcpy(&tmpxx[len*2-strlen(str)] ,str,strlen(str));
strncpy(_padleft,(char*)&tmpxx[len],len);
}
else
{
strncpy(_padleft,tmpxx,len);
}
echoic("||%s||||%s||%s",tmpxx,str,_padleft);
return _padleft;
}
效果如下:
char bychar @,char *str 2648805676 ,int len 32
||@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2648805676||||2648805676||@@@@@@@@@@@@@@@@@@@@@@2648805676