#include <iostream> #include<string.h> #include<stdio.h> //it is a apple //step1 所有反转 //step2 每个单词单独反转 using namespace std; int main(){ char a[1005]; int left,right; int n1,n2; char temp; while(cin.getline(a,1005)){ //以EOF结尾输入的方式 且是一行一行输入的 将这个理解为最大的外层的框架即可 后续代码都是在这个大的框架中进行的 left=0; right=strlen(a)-1; while(left<right){ temp=a[left]; a[left]=a[right]; a[right]=temp; left=left+1; right=right-1; } n1=0; for(int i=0;i<strlen(a)+1;i++) { if(a[i]==' '||a[i]=='\0'){ n2=i-1; while(n1<n2){ temp=a[n1]; a[n1]=a[n2]; a[n2]=temp; n1=n1+1; n2=n2-1; } n1=i+1; //更新n1,这一步很重要 } } cout<<a<<endl; } return 0; }