输入一个字符串(至多80个字符),请按照指定的字符,对字符串进行分割,并将分隔后的字符串升序排序输出。
输入:第一行是一个字符串,第二行是一个字符。
算法:设置一个头指针记录下一个子串的起点,遍历母串到达分割符时,截取这一段字符串并存入一个字符串数组中。
要注意的问题:
子串可能是空串比如 I am mmopq,以m为分割的话,第一个串是I a,第二个(空格但不是空串),此时start头指针指到第三个m头尾重合我们不取子串,但是还要给末尾添‘ ’作为结束符,这样就产生了空串(具体看代码)。当然也可以增加判断条件过滤掉这种情况。但是这是为了更好的理解字符串。
代码:
#include#include int main(){ char s[85]; gets(s); //母串 char ch = getchar(); int i=0,start=0; //start 记录子串的头 char t[80][80]; //储存子串 int j=0,k=0; while(1){ //获得所有子串的循环 if(s[i]==ch||s[i]==0){ for(int l=start;l0){ char tmp[80]; strcpy(tmp,t[k-1]); strcpy(t[k-1],t[k]); strcpy(t[k],tmp); } } } for(i=0;i ps:做题笔记,整理仓促,仅供参考,若有不足,还请指教



