句子逆序但单词不逆序的算法学习
这里学习借鉴了网友的做法,一直以为自己懂双指针的用法,但在头脑始终还没有形成条件反射,再次记录下。
这里数据的输入使用的是fgets函数,能有效避免gets函数带来的数组越界的问题,但是美中不足的是fgets函数会将输入时敲击的回车键\n一起保存进字符串中,对,就是在常见的字符串结束标志\0之前增加了一个\n,因此需要进行特别处理。
在这个算法中,就是在句子逆序的时候将\n排除在逆序的范围之外。然后对整个字符串先使用双指针的方法进行整体逆序。然后再对单个单词进行再次逆序,算法的关键点也就在这里。
但是通过观察我们可以知道,原字符串中单词是以单个空格为界限分开的,所以我们对单个单词逆序前,需要先识别处一个单词包含的内容有哪些,也就是说当我们读到空格或者是字符串结束符的时候,就说明一个单词读取完成,可以进行逆序操作。