字符串内子字符串的逆序算法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串内子字符串的逆序算法相关的知识,希望对你有一定的参考价值。
源于一道ACM的题目,要求将字符串中的子字符串逆序输出,最初的想法就是利用strtok按照空格进行分割字符,再实现以下单个字符串的逆序,再通过strcat进行字符串的拼接,感觉这个想法不错,利用库函数搞搞,但是不知道哪里出错,strcat出来的字符串输出的时候会出现多个换行,非常难受,感觉一个简单的问题,代码太多,所以睡觉的时候就在想,我应该考虑自己写一个算法来实现这个需求,刚好最近在看算法方面的书,那就尝试下吧。
基本思想,从前往后扫描字符串,遇到空格停止,字符串第一个字符start位置,扫描到空格为end位置,将start——end-1中的字符串进行逆序,然后end位置填上空格,更新start = end + 1指向下一个字符串的起始字符,end更新到空格结束的位置,over!
核心代码如下:
1 start = 0, end = 0; 2 for(i = 0; i < len; i++) 3 { 4 end = i; 5 if(src[end] == ‘ ‘ || src[end] == ‘\n‘) 6 { 7 for(j = start; j < end; j++) 8 { 9 dest[k][j] = src[end - 1 - j + start]; 10 } 11 if(src[end] == ‘ ‘) 12 { 13 dest[k][j] = ‘ ‘; 14 } 15 start = end + 1; 16 } 17 }
以上是关于字符串内子字符串的逆序算法的主要内容,如果未能解决你的问题,请参考以下文章