子字符串排序的关键代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
    char s[20];
    char *p[11],temp;
    while(gets(s))
    {
        int i,j,len;
        len=strlen(s);
        for(i=0;i<len;i++)
        {
            p[i]=(char *)malloc(sizeof(len-i));
            strcpy(p[i],s+i);
        }
        for(i=0;i<len-1;i++)
            for(j=0;j<len-1-i;j++)
                if(strcmp(p[j],p[j+1])>0)
                {
                    temp=*p[j];
                    *p[j]=*p[j+1];
                    *p[j+1]=temp;

                }
        for(i=0;i<len;i++)
            printf("%s
",p[i]);

    }
    return 0;
}

/*
char *p[11];
len=strlen(s);
for(i=0;i<len;i++)
{
    p[i]=(char *)malloc(sizeof(len-i));
    strcpy(p[i],s+i);      
}

*/
原文地址:https://www.cnblogs.com/zmmm/p/12771668.html