- 题目描述:
-
对于一个字符串,将其后缀子串进行排序,例如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 ****************************************************************/
时间: 2024-10-16 12:18:33