问题描述:将字符串句子按单词逆序
//字符串逆序
char* Reverse(char* s)
{
//将q指向字符串最后一个字符
char* tail = s;
while (*tail) {
tail++;
}
tail--;
char* head = s;
while (head != tail)
{
char tmp = *head;
*head = *tail;
*tail = tmp;
head++;
tail--;
}
return s;
}
// 将句子按单词逆序
char* ReverseSentence(char* s)
{
// 这两个指针用来确定一个单词的首尾边界
char* p = s; // 指向单词的首字符
char* q = s; // 指向空格或者 '\0'
while (*q != '\0')
{
if (*q == ' ')
{
ReverseWord(p, q - 1);
q++; // 指向下一个单词首字符
p = q;
}
else
q++;
}
ReverseWord(p, q - 1); // 对最后一个单词逆序
ReverseWord(s, q - 1); // 对整个句子逆序
return s;
}