【剑指】 面试题58 翻转单词顺序

来源:互联网 发布:1元云购技巧软件 编辑:程序博客网 时间:2024/06/13 20:28

第一步翻转句子中所有字符,第二步翻转单词

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!='\0')    {        pEnd++;    }    pEnd--;    Reverse(pBegin, pEnd);//反转整个句子    //反转单词    pEnd = pBegin = pData;    while (*pBegin!='\0')    {        if (*pBegin == ' ')        {            pBegin++;            pEnd++;        }        else if (*pEnd == ' ' || *pEnd == '\0')        {            Reverse(pBegin, --pEnd);            pBegin = ++pEnd;        }        else            pEnd++;    }    return pData;}
原创粉丝点击