设计一个算法,将字符串中的单词首尾翻转,例如:
输入:"abc def",那么输出为:"def abc",这里我采用的是使用两个指针从字符串尾部开始往前遍历,遇到间隔符便提取一个单词,代码实现比较简单,直接上代码,如下:
void reversal(char* nSrc, char* nResult, char* nSplit)
{
//可增加参数合法性判断
char* pHeader = NULL;
char* pTail = NULL;
int len = strlen(nSrc);
pHeader = nSrc + len - 1;
pTail = pHeader;
for(int i=len-1; i>=0; i--)
{
if(!strncmp(nSplit,pHeader,1))
{
strncat(nResult, pHeader+1, pTail-pHeader);
strcat(nResult, nSplit);
pTail = pHeader;
}
if( 0 == i)
{
strncat(nResult, pHeader, pTail-pHeader);
}
pHeader--;
}
}
下边直接在main函数中验证
int main(int argc, char* argv[])
{