Sunday, October 14, 2012

LeftRotateString n


void reverse(char *pBegin, char *pEnd)
{
    if(NULL==pBegin || NULL == pEnd)
        return;
 
    while(pBegin<pEnd)
    {  
        char temp;
        temp = *pBegin;
        *pBegin =*pEnd;
        *pEnd = temp;
     
        pBegin++;
        pEnd--;
    }
}


void LeftRotateString(char *pSrc, unsigned n)
{
   char *pB1 = pSrc;
   char *pE1 = pSrc+n-1;
   char *pB2 = pSrc+n;
   char *pE2 = pSrc+strlen(pSrc)-1;
 
   reverse(pB1, pE1);
   reverse(pB2, pE2);
   reverse(pB1, PE2);
 }

No comments:

Post a Comment