你好!欢迎来到 !
语言
当前位置: 首页>> 技术中心>> 单片机入门>> 关于字符串的逆序题目

关于字符串的逆序题目

关键字: C语言 作者:admin 来源:不详 发布时间:2018-05-18 浏览:0

今天做了一道关于字符串逆序的题目,题目为输入I am a student,而输出为student a am I。这道题的思路很清楚,就是先把整个句子逆序,然后将一个一个单词逆序,这样便得到了最终结果。而在将单词逆序的时候,可以设置两个指针,一个指针依次遍历,当遍历到空格的时候,将此时的指针代表的值赋\0,然后将另一个指针传到逆序函数中,函数结束后,再赋空格。

  1. /**********************************************************
  2. File Name:
  3. Description: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。(笔试题)
  4. 句子中单词以空格符隔开。为简单起见,没有标点符号。
  5. 例如输入“I am a student”,则输出“student a am I”
  6. Fuction List:
  7. ************************************************************/
  8. #include
  9. #define N 50
  10. void overturn1(char *p)
  11. {
  12. char *h = p;
  13. while (*(++p) != '\0')
  14. {
  15. ;
  16. }
  17. p = p - 1;
  18. char temp;
  19. while(h <= p)
  20. {
  21. temp = *(p);
  22. *p = *h;
  23. *(h) = temp;
  24. p--;
  25. h++;
  26. }
  27. }
  28. void overturn2(char* p)
  29. {
  30. char *pre = p;
  31. char *cur = p;
  32. while (*(cur) != '\0')
  33. {
  34. if (*(cur) == ' ')
  35. {
  36. *cur = '\0';
  37. overturn1(pre);
  38. *cur = ' ';
  39. cur++;
  40. pre = cur;
  41. }
  42. else
  43. {
  44. cur++;
  45. }
  46. }
  47. overturn1(pre);
  48. }
  49. int main()
  50. {
  51. char phrase[N] = {0};
  52. printf("please input:\n");
  53. gets(phrase);
  54. overturn1(phrase);
  55. overturn2(phrase);
  56. puts(phrase);
  57. return 0;
  58. }

编辑:admin 最后修改时间:2019-06-17

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright ? 2014-2023 All Rights Reserved.粤ICP备14043402号-4

Baidu
map