“student a am i”的倒置

前端之家收集整理的这篇文章主要介绍了“student a am i”的倒置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

问题:如何实现student a am i转换成为i am a student?

解析:可将语句完全倒置,成为i ma a tneduts,再将逐个单词倒置,成为i am a student

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void reverse_string(char *l,char *r)
  5. {
  6. while (l < r)
  7. {
  8. char tmp = *l;
  9. *l = *r;
  10. *r = tmp;
  11. l++;
  12. r--;
  13. }
  14. }
  15. void reverse(char ch[],int len)
  16. {
  17. int i = 0;
  18. char *ctmpl = ch;
  19. char *ctmpr = ch;
  20. while (ch[i])
  21. {
  22. if (ch[i] == ' ')
  23. {
  24. reverse_string(ctmpl,ctmpr-1);
  25. ctmpl = ++ctmpr;
  26. }
  27. else
  28. {
  29. ctmpr++;
  30. }
  31. i++;
  32. }
  33. reverse_string(ch,ch + len - 1);
  34. }
  35. int main()
  36. {
  37. char ch[] = "student a am i";
  38. reverse(ch,strlen(ch));
  39. printf("%s\n",ch);
  40. }

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