倒置英文字母中单词的字母顺序

前端之家收集整理的这篇文章主要介绍了倒置英文字母中单词的字母顺序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

输入一个英文句子,包含字母大小写、逗号、句号和空格。把英文句子中的单词的字母顺序倒置。

  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4. void revert(char *start,char *end){ //使用异或来进行交换
  5. while(start<end){
  6. *start=*start^*end;
  7. *end=*start^*end;
  8. *start=*start^*end;
  9. start++;
  10. end--;
  11. }
  12. }
  13. void main(){
  14. char a[1024],*start;
  15. gets(a); //gets 不会过滤空格
  16. int len=strlen(a),i=0,j=0;
  17. while(i<len){
  18. if(isalpha(a[i])){
  19. start=a+i;
  20. j=i+1;
  21. while(j<len){
  22. if(isalpha(a[j]))
  23. j++; //j移到每个单词最后一个字母
  24. else
  25. break;
  26.  
  27. }
  28. char *end=a+j-1;
  29. revert(start,end);
  30.  
  31. }
  32. i=j+1; //i移到单词首字母
  33. j++;
  34. }
  35. for(int i=0;i<len;i++)
  36. cout<<a[i];
  37. cout<<endl;
  38.  
  39. }


猜你在找的设计模式相关文章