void Reverse (char* pbegin, char* pEnd)
{
if (Pbegin = = NULL | | pEnd = = NULL)
Return
while (Pbegin < pEnd)
{
char temp = *pbegin;
*pbegin = *pend;
*pend = temp;
pbegin++, pend--;
}
}
char* reversesentence (char *pdata)
{
if (PData = = NULL)
return NULL;
char* pbegin = PData;
char* pEnd = PData;
while (*pend! = ')
pend++;
pend--;
Flip the whole sentence
Reverse (Pbegin, pEnd);
Flip each word in a sentence
Pbegin = PEnd = PData;
while (*pbegin! = ')
{
if (*pbegin = = ")
{
pbegin++;
pend++;
}
else if (*pend = = "| | *pend = = ' + ')
{
Reverse (Pbegin,--pend);
}
Else
{
pend++;
}
}
return pData;
}
char* leftrotatestring (char* pStr, int n)
{
if (pStr! = NULL)
{
int nlength = static_cast<int> (strlen (PSTR));
if (nlength > 0 && n > 0 && N < nlength)
{
char* Pfirststart = pStr;
char* pfirstend = pStr + n-1;
char* psecondstart= pStr + N;
char* psecondend = pStr + nLength-1;
Flips the front n characters of a string
Reverse (Pfirststart, pfirstend);
Flips the back part of a string
Reverse (Psecondstart, psecondend);
Flip the entire string
Reverse (Pfirststart, psecondend);
}
}
return pStr;
}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
42. Flip word order vs left Spin string