用C++语言实现,将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不导致。比如一句话“I come from tianjin. “,倒置后变成“tianjin. from come I ”。
步骤:
1、讲字符串中的所有字符反转
2、部分反转,即空格之间的单词进行反转
#include<iostream>
using namespace std;
//用C++语言实现,将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不导致。
// 比如一句话“I come from tianjin. “,倒置后变成“tianjin. from come I ”。
void reverse(char *p,int l,int r)
{
int i=l,j=r;
while(i<j)
{
swap(p[i],p[j]);
i++;
j--;
}
}
void change(char *p)
{
int n=strlen(p);
reverse(p,0,n-1);
int i=0,j=0;
while(j<n)
{
while(j<n && p[j]!=' ')
{
j++;
}
reverse(p,i,j-1);
i=j;
while(i<n && p[i]==' ')
i++;
j=i+1;
}
}
void main()
{
char p[100];
cin.getline(p,100);
change(p);
cout<<p<<endl;
system("pause");
}