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