输入一个英文句子,包含字母大小写、逗号、句号和空格。把英文句子中的单词的字母顺序倒置。
- #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;
- }