-
题目描述:
-
对于一个字符串,将其后缀子串进行排序,例如grain
其子串有:
grain
rain
ain
in
n然后对各子串按字典顺序排序,即:
ain,grain,in,n,rain
-
输入:
-
每个案例为一行字符串。
-
输出:
-
将子串排序输出
-
样例输入:
-
grain
-
样例输出:
-
ain grain in n rain
-
答疑:
- 解题遇到问题?分享解题心得?讨论本题请访问: http://t.jobdu.com/thread-7822-1-1.html
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//排序函数(二维字符串数组)
int compare(const void *a,const void *b){
return (strcmp((char*)a,(char*)b));
}
int main()
{
char s[100][100];
int i,len;
while(scanf("%s",s[0])!=EOF)
{
len=strlen(s[0]);
for(i=1;i<len;++i)
{
//将其后缀子串复制到s数组中
strcpy(s[i],s[0]+i);
}
qsort(s,len,100,compare);
for(i=0;i<len;++i)
printf("%s\n",s[i]);
}
return 0;
}
/**************************************************************
Problem: 1099
User: vhreal
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/