字符串中单词的逆反,如i love you very much,逆反为much very you love i。
可以看出每个单词的顺序是正确的。分为两步:
1、首先实现每个单词中字母的逆反
i evol uoy yrev hcum
2、然后实现整个句子的逆反
much very you love i
整个程序的实现过程如下:
#include "string"
#include "iostream"
using namespace std;
void ReverseWord(char* p, char* q)
{
char temp=NULL;
while(p<q)
{
temp=*p;
*p=*q;
*q=temp;
p++;
q--;
}
}
void ReverseSentence(char *str)
{
char *p=str;
char* q=p;
while ('\0'!=*q)
{
if (*q==' ')
{
ReverseWord(p,q-1);
q++;
p=q;
}
else
q++;
}
//实现最后一个单词的逆反
ReverseWord(p,q-1);
//实现整个句子的逆反
ReverseWord(str,q-1);
}
int main()
{
char str[] = "i love you very much";
cout << str << endl;
ReverseSentence(str);
cout << str << endl;
return 0;
}