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

原文地址:https://www.cnblogs.com/MysticBoy/p/1450897.html