输入一个英文句子,包含字母大小写、逗号、句号和空格。把英文句子中的单词的字母顺序倒置。
#include<iostream>
#include<string>
using namespace std;
void revert(char *start,char *end){ //使用异或来进行交换
while(start<end){
*start=*start^*end;
*end=*start^*end;
*start=*start^*end;
start++;
end--;
}
}
void main(){
char a[1024],*start;
gets(a); //gets 不会过滤空格
int len=strlen(a),i=0,j=0;
while(i<len){
if(isalpha(a[i])){
start=a+i;
j=i+1;
while(j<len){
if(isalpha(a[j]))
j++; //j移到每个单词最后一个字母
else
break;
}
char *end=a+j-1;
revert(start,end);
}
i=j+1; //i移到单词首字母
j++;
}
for(int i=0;i<len;i++)
cout<<a[i];
cout<<endl;
}